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);


Reply via email to