You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by gb...@apache.org on 2007/12/18 19:58:04 UTC

svn commit: r605293 - in /ibatis/trunk/cs/mapper: IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/ IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ IBatisNet.DataMapper/MappedStatements/ArgumentStrategy/ IBatisNet.DataMapper/MappedStatements/PropertStrategy/

Author: gbayon
Date: Tue Dec 18 10:58:03 2007
New Revision: 605293

URL: http://svn.apache.org/viewvc?rev=605293&view=rev
Log:
Fix IBATISNET-251

Modified:
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/LineItem.xml
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Order.xml
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/ArgumentStrategy/SelectStrategy.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/PropertStrategy/SelectStrategy.cs

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/LineItem.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/LineItem.xml?rev=605293&r1=605292&r2=605293&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/LineItem.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/LineItem.xml Tue Dec 18 10:58:03 2007
@@ -84,18 +84,31 @@
         order by LineItem_Code
     </statement>
     
-		<statement id="GetSpecificLineItem"
+		<statement id="GetSpecificLineItem-JIRA-251"
 					parameterClass="Hashtable"
 					resultClass="LineItem">
-			select
-				LineItem_ID as Id,
-				LineItem_Code as Code,
-				LineItem_Quantity as Quantity,
-				LineItem_Price as Price
-				from LineItems
-			where Order_ID = #Order_ID#
-				and LineItem_ID = #LineItem_ID#
-		</statement>
+      select
+      LineItem_ID as Id,
+      LineItem_Code as Code,
+      LineItem_Quantity as Quantity,
+      LineItem_Price as Price
+      from LineItems
+      where Order_ID = #Order_ID#
+      and LineItem_ID = #Order_FavouriteLineItem#
+    </statement>
+
+    <statement id="GetSpecificLineItem"
+      parameterClass="Hashtable"
+      resultClass="LineItem">
+      select
+      LineItem_ID as Id,
+      LineItem_Code as Code,
+      LineItem_Quantity as Quantity,
+      LineItem_Price as Price
+      from LineItems
+      where Order_ID = #Order_ID#
+      and LineItem_ID = #LineItem_ID#
+    </statement>
 		
 		<statement id="GetSpecificLineItemWithPicture"
 					parameterClass="Hashtable"

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Order.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Order.xml?rev=605293&r1=605292&r2=605293&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Order.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Order.xml Tue Dec 18 10:58:03 2007
@@ -344,6 +344,19 @@
 			<result property="PostalCode"			column="Order_PostalCode"/>
 			<result property="FavouriteLineItem"	column="Order_ID=Order_ID,LineItem_ID=Order_FavouriteLineItem" select="GetSpecificLineItem" />
 		</resultMap>
+
+    <resultMap id="order-with-favourite-line-item-JIRA-251" class="Order">
+      <result property="Id"					column="Order_ID"/>
+      <result property="Date"					column="Order_Date"/>
+      <result property="CardExpiry"			column="Order_CardExpiry"/>
+      <result property="CardType"				column="Order_CardType"/>
+      <result property="CardNumber"			column="Order_CardNumber"/>
+      <result property="Street"				column="Order_Street"/>
+      <result property="City"					column="Order_City"/>
+      <result property="Province"				column="Order_Province"/>
+      <result property="PostalCode"			column="Order_PostalCode"/>
+      <result property="FavouriteLineItem"	column="Order_ID,Order_FavouriteLineItem" select="GetSpecificLineItem-JIRA-251" />
+    </resultMap>
 		
 		<resultMap id="order-joined-favourite2" class="Order">
 			<result property="Id"					column="Order_ID"/>
@@ -612,6 +625,12 @@
 					resultMap="order-with-favourite-line-item" >
 			select * from Orders where Order_ID = #value#
 		</statement>
+
+    <statement id="GetOrderWithFavouriteLineItem-JIRA-251"
+      parameterClass="int"
+      resultMap="order-with-favourite-line-item-JIRA-251" >
+      select * from Orders where Order_ID = #value#
+    </statement>
 		
 		<statement id="GetOrderWithLineItemCollection"
 					parameterClass="int"

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs?rev=605293&r1=605292&r2=605293&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ResultMapTest.cs Tue Dec 18 10:58:03 2007
@@ -338,6 +338,25 @@
             Assert.IsNotNull(order2);
             Assert.IsNotNull(order2.FavouriteLineItem);
             Assert.AreEqual(17, order2.FavouriteLineItem.Id);
+        }
+
+        /// <summary>
+        /// Test a composite Key Mapping.
+        /// It must be: key1,key2,... (old syntax)
+        /// </summary>
+        [Test]
+        public void TestCompositeKeyMapping_JIRA_251()
+        {
+            Order order1 = (Order)sqlMap.QueryForObject("GetOrderWithFavouriteLineItem-JIRA-251", 1);
+            Order order2 = (Order)sqlMap.QueryForObject("GetOrderWithFavouriteLineItem-JIRA-251", 2);
+
+            Assert.IsNotNull(order1);
+            Assert.IsNotNull(order1.FavouriteLineItem);
+            Assert.AreEqual(1, order1.FavouriteLineItem.Id);
+
+            Assert.IsNotNull(order2);
+            Assert.IsNotNull(order2.FavouriteLineItem);
+            Assert.AreEqual(17, order2.FavouriteLineItem.Id);
 
         }
 

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/ArgumentStrategy/SelectStrategy.cs
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/ArgumentStrategy/SelectStrategy.cs?rev=605293&r1=605292&r2=605293&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/ArgumentStrategy/SelectStrategy.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/ArgumentStrategy/SelectStrategy.cs Tue Dec 18 10:58:03 2007
@@ -119,8 +119,11 @@
 				while (!wasNull && enumerator.MoveNext()) 
 				{
 					string hashKey = ((string)enumerator.Current).Trim();
-					enumerator.MoveNext();
-					object hashValue = reader.GetValue( reader.GetOrdinal(((string)enumerator.Current).Trim()) );
+                    if (paramString.Contains("="))// old 1.x style multiple params
+                    {
+                        enumerator.MoveNext();
+                    }
+				    object hashValue = reader.GetValue( reader.GetOrdinal(((string)enumerator.Current).Trim()) );
 
 					keyMap.Add(hashKey, hashValue );
 					wasNull = (hashValue == DBNull.Value);

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/PropertStrategy/SelectStrategy.cs
URL: http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/PropertStrategy/SelectStrategy.cs?rev=605293&r1=605292&r2=605293&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/PropertStrategy/SelectStrategy.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/PropertStrategy/SelectStrategy.cs Tue Dec 18 10:58:03 2007
@@ -120,8 +120,11 @@
 				while (!wasNull && enumerator.MoveNext()) 
 				{
 					string hashKey = ((string)enumerator.Current).Trim();
-					enumerator.MoveNext();
-					object hashValue = reader.GetValue( reader.GetOrdinal(((string)enumerator.Current).Trim()) );
+                    if (paramString.Contains("="))// old 1.x style multiple params
+                    {
+                        enumerator.MoveNext();
+                    }
+				    object hashValue = reader.GetValue( reader.GetOrdinal(((string)enumerator.Current).Trim()) );
 
 					keyMap.Add(hashKey, hashValue );
 					wasNull = (hashValue == DBNull.Value);