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