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 2006/02/14 21:07:29 UTC
svn commit: r377813 - in /ibatis/trunk/cs/mapper: IBatisNet.DataMapper.Test/
IBatisNet.DataMapper.Test/Domain/
IBatisNet.DataMapper.Test/Maps/Access/OleDb/
IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/
IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/ IBatisNet...
Author: gbayon
Date: Tue Feb 14 12:07:27 2006
New Revision: 377813
URL: http://svn.apache.org/viewcvs?rev=377813&view=rev
Log:
- Updated generic list support for object as Order{public IList<LineItem> LineItemsGenericList{...}};
- Added unit test
- Updated change log
Added:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/Generics/ResiltMapTest.cs (with props)
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/Order.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/Order.xml
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/Order.xml
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/Order.xml
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Order.xml
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/Order.xml
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/Order.xml
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/Order.xml
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/Order.xml
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/Order.xml
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/ReadMe.txt
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/ChangeLog.txt
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/Order.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/Order.cs?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/Order.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/Order.cs Tue Feb 14 12:07:27 2006
@@ -1,5 +1,8 @@
using System;
using System.Collections;
+#if dotnet2
+using System.Collections.Generic;
+#endif
namespace IBatisNet.DataMapper.Test.Domain
{
@@ -22,42 +25,31 @@
private IList _lineItems;//LineItemCollection
private LineItem[] _lineItemsArray;
private LineItem _favouriteLineItem;
+ private IList<LineItem> _genericList;
+
+ public IList<LineItem> LineItemsGenericList
+ {
+ get { return _genericList; }
+ set { _genericList = value; }
+ }
public LineItem FavouriteLineItem
{
- get
- {
- return _favouriteLineItem;
- }
- set
- {
- _favouriteLineItem = value;
- }
+ get { return _favouriteLineItem; }
+ set { _favouriteLineItem = value; }
}
public IList LineItemsIList
{
- get
- {
- return _lineItemsIList;
- }
- set
- {
- _lineItemsIList = value;
- }
+ get { return _lineItemsIList; }
+ set { _lineItemsIList = value; }
}
public IList LineItems
{
- get
- {
- return _lineItems;
- }
- set
- {
- _lineItems = value;
- }
+ get { return _lineItems; }
+ set { _lineItems = value; }
}
public LineItem[] LineItemsArray
@@ -180,7 +172,7 @@
}
}
- public System.DateTime Date
+ public DateTime Date
{
get
{
@@ -192,7 +184,7 @@
}
}
- public System.DateTime OrderDate {
+ public DateTime OrderDate {
get {
return _date;
}
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.2005.csproj Tue Feb 14 12:07:27 2006
@@ -211,6 +211,7 @@
<Compile Include="NUnit\SqlMapTests\DynamicTest.cs">
<SubType>Code</SubType>
</Compile>
+ <Compile Include="NUnit\SqlMapTests\Generics\ResiltMapTest.cs" />
<Compile Include="NUnit\SqlMapTests\Generics\ResultClassTest.cs" />
<Compile Include="NUnit\SqlMapTests\Generics\StatementTest.cs" />
<Compile Include="NUnit\SqlMapTests\InheritanceTest.cs">
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/Order.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/Order.xml?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/Order.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Access/OleDb/Order.xml Tue Feb 14 12:07:27 2006
@@ -16,7 +16,12 @@
<resultMap id="credit-card-result" class="string">
<result property="value" column="Order_CardNumber"/>
</resultMap>
-
+
+ <resultMap id="order-with-generic-list-lineitem" class="Order"
+ extends="lite-order-result-by-name" >
+ <result property="LineItemsGenericList" column="Order_ID" select="GetLineItemsForOrder" />
+ </resultMap>
+
<resultMap id="order-with-lines-result" class="Order"
extends="lite-order-result-by-name" >
<result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="GetLineItemsForOrder" />
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/Order.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/Order.xml?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/Order.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/Odbc/Order.xml Tue Feb 14 12:07:27 2006
@@ -16,7 +16,12 @@
<resultMap id="credit-card-result" class="string">
<result property="value" column="Order_CardNumber"/>
</resultMap>
-
+
+ <resultMap id="order-with-generic-list-lineitem" class="Order"
+ extends="lite-order-result-by-name" >
+ <result property="LineItemsGenericList" column="Order_ID" select="GetLineItemsForOrder" />
+ </resultMap>
+
<resultMap id="order-with-lines-result" class="Order"
extends="lite-order-result-by-name" >
<result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="GetLineItemsForOrder" />
@@ -201,6 +206,12 @@
<statements>
+ <statement id="GetOrderWithGenricListLineItem"
+ parameterClass="Integer"
+ resultMap="order-with-generic-list-lineitem" >
+ select * from Orders where Order_ID = #value#
+ </statement>
+
<statement id="GetOrderByHashTable"
parameterClass="Int"
resultMap="order-hash" >
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/Order.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/Order.xml?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/Order.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/OleDb/Order.xml Tue Feb 14 12:07:27 2006
@@ -16,7 +16,12 @@
<resultMap id="credit-card-result" class="string">
<result property="value" column="Order_CardNumber"/>
</resultMap>
-
+
+ <resultMap id="order-with-generic-list-lineitem" class="Order"
+ extends="lite-order-result-by-name" >
+ <result property="LineItemsGenericList" column="Order_ID" select="GetLineItemsForOrder" />
+ </resultMap>
+
<resultMap id="order-with-lines-result" class="Order"
extends="lite-order-result-by-name" >
<result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="GetLineItemsForOrder" />
@@ -206,7 +211,13 @@
resultMap="lite-order-result-by-name" >
select * from Orders where Order_ID = #value#
</statement>
-
+
+ <statement id="GetOrderWithGenricListLineItem"
+ parameterClass="Integer"
+ resultMap="order-with-generic-list-lineitem" >
+ select * from Orders where Order_ID = #value#
+ </statement>
+
<statement id="GetOrderLiteByColumnIndex"
parameterClass="Int"
resultMap="lite-order-result-by-index" >
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Order.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Order.xml?rev=377813&r1=377812&r2=377813&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 Feb 14 12:07:27 2006
@@ -18,28 +18,45 @@
<result property="value" column="Order_CardNumber"/>
</resultMap>
- <resultMap id="order-with-lines-result" class="Order"
+ <resultMap id="lite-order-result-by-name" class="Order">
+ <result property="Id" column="Order_ID"/>
+ <result property="Date" column="Order_Date" nullValue="01/01/0001 00:00:00"/>
+ <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"/>
+ </resultMap>
+
+ <resultMap id="order-with-generic-list-lineitem" class="Order"
+ extends="lite-order-result-by-name" >
+ <result property="LineItemsGenericList" column="Order_ID" select="GetLineItemsForOrder" />
+ </resultMap>
+
+ <resultMap id="order-with-lines-result" class="Order"
extends="lite-order-result-by-name" >
- <result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="GetLineItemsForOrder" />
- </resultMap>
-
- <resultMap id="order-with-lines-result-statement-namespaces" class="Order"
+ <result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="GetLineItemsForOrder" />
+ </resultMap>
+
+ <resultMap id="order-with-lines-result-statement-namespaces" class="Order"
extends="lite-order-result-by-name" >
- <result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="LineItem.GetLineItemsForOrder" />
- </resultMap>
-
- <resultMap id="order-with-lines-collection" class="Order"
+ <result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="LineItem.GetLineItemsForOrder" />
+ </resultMap>
+
+ <resultMap id="order-with-lines-collection" class="Order"
extends="lite-order-result-by-name" >
- <result property="LineItems" column="Order_ID" lazyLoad="true" select="GetLineItemsForOrderWithListClass" />
- </resultMap>
-
- <resultMap id="order-with-lines-array" class="Order"
+ <result property="LineItems" column="Order_ID" lazyLoad="true" select="GetLineItemsForOrderWithListClass" />
+ </resultMap>
+
+ <resultMap id="order-with-lines-array" class="Order"
extends="lite-order-result-by-name">
- <result property="LineItemsArray" column="Order_ID" select="GetLineItemsForOrder"/>
- </resultMap>
-
- <resultMap id="lite-order-map-result" class="Hashtable">
- <result property="Id" type="Int" column="Order_ID"/>
+ <result property="LineItemsArray" column="Order_ID" select="GetLineItemsForOrder"/>
+ </resultMap>
+
+ <resultMap id="lite-order-map-result" class="Hashtable">
+ <result property="Id" type="Int" column="Order_ID"/>
<result property="Date" type="date" column="Order_Date"/>
<result property="CardExpiry" type="string" column="Order_CardExpiry"/>
<result property="CardType" type="string" column="Order_CardType"/>
@@ -50,18 +67,7 @@
<result property="PostalCode" type="string" column="Order_PostalCode"/>
</resultMap>
- <resultMap id="lite-order-result-by-name" class="Order">
- <result property="Id" column="Order_ID"/>
- <result property="Date" column="Order_Date" nullValue="01/01/0001 00:00:00"/>
- <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"/>
- </resultMap>
-
+
<resultMap id="order-hash" class="Hashtable">
<result property="Date" column="Order_Date" nullValue="01/01/0001 00:00:00"/>
</resultMap>
@@ -213,7 +219,9 @@
AND Orders.Order_FavouriteLineItem = LineItems.LineItem_ID
WHERE Orders.Order_ID = #value#
</select>-->
-
+
+
+
<statement id="GetOrderLiteByColumnName"
parameterClass="Int"
resultMap="lite-order-result-by-name" >
@@ -253,7 +261,13 @@
resultMap="order-with-lines-result" >
select * from Orders where Order_ID = #value#
</statement>
-
+
+ <statement id="GetOrderWithGenricListLineItem"
+ parameterClass="Integer"
+ resultMap="order-with-generic-list-lineitem" >
+ select * from Orders where Order_ID = #value#
+ </statement>
+
<statement id="GetOrderWithLineItemsUsingStatementNamespaces"
parameterClass="Integer"
resultMap="order-with-lines-result-statement-namespaces" >
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/Order.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/Order.xml?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/Order.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/ByteFx/Order.xml Tue Feb 14 12:07:27 2006
@@ -16,7 +16,12 @@
<resultMap id="credit-card-result" class="string">
<result property="value" column="Order_CardNumber"/>
</resultMap>
- <!-- -->
+
+ <resultMap id="order-with-generic-list-lineitem" class="Order"
+ extends="lite-order-result-by-name" >
+ <result property="LineItemsGenericList" column="Order_ID" select="GetLineItemsForOrder" />
+ </resultMap>
+
<resultMap id="order-with-lines-result" class="Order"
extends="lite-order-result-by-name" >
<result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="GetLineItemsForOrder" />
@@ -188,7 +193,13 @@
</resultMaps>
<statements>
-
+
+ <statement id="GetOrderWithGenricListLineItem"
+ parameterClass="Integer"
+ resultMap="order-with-generic-list-lineitem" >
+ select * from Orders where Order_ID = #value#
+ </statement>
+
<statement id="GetOrderByHashTable"
parameterClass="Int"
resultMap="order-hash" >
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/Order.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/Order.xml?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/Order.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MySql/MySql/Order.xml Tue Feb 14 12:07:27 2006
@@ -16,8 +16,13 @@
<resultMap id="credit-card-result" class="string">
<result property="value" column="Order_CardNumber"/>
</resultMap>
- <!-- -->
- <resultMap id="order-with-lines-result" class="Order"
+
+ <resultMap id="order-with-generic-list-lineitem" class="Order"
+ extends="lite-order-result-by-name" >
+ <result property="LineItemsGenericList" column="Order_ID" select="GetLineItemsForOrder" />
+ </resultMap>
+
+ <resultMap id="order-with-lines-result" class="Order"
extends="lite-order-result-by-name" >
<result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="GetLineItemsForOrder" />
</resultMap>
@@ -188,6 +193,13 @@
</resultMaps>
<statements>
+
+ <statement id="GetOrderWithGenricListLineItem"
+ parameterClass="Integer"
+ resultMap="order-with-generic-list-lineitem" >
+ select * from Orders where Order_ID = #value#
+ </statement>
+
<statement id="GetOrderLiteByColumnName"
parameterClass="Int"
resultMap="lite-order-result-by-name" >
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/Order.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/Order.xml?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/Order.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/ODP/Order.xml Tue Feb 14 12:07:27 2006
@@ -17,6 +17,11 @@
<result property="value" column="Order_CardNumber" dbType="Varchar2" />
</resultMap>
+ <resultMap id="order-with-generic-list-lineitem" class="Order"
+ extends="lite-order-result-by-name" >
+ <result property="LineItemsGenericList" column="Order_ID" select="GetLineItemsForOrder" />
+ </resultMap>
+
<resultMap id="order-with-lines-result" class="Order"
extends="lite-order-result-by-name" >
<result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="GetLineItemsForOrder" />
@@ -188,7 +193,12 @@
</resultMaps>
<statements>
-
+ <statement id="GetOrderWithGenricListLineItem"
+ parameterClass="Integer"
+ resultMap="order-with-generic-list-lineitem" >
+ select * from Orders where Order_ID = #value#
+ </statement>
+
<statement id="GetOrderByHashTable"
parameterClass="Int"
resultMap="order-hash" >
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/Order.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/Order.xml?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/Order.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/Oracle/OracleClient/Order.xml Tue Feb 14 12:07:27 2006
@@ -16,7 +16,12 @@
<resultMap id="credit-card-result" class="string">
<result property="value" column="Order_CardNumber"/>
</resultMap>
-
+
+ <resultMap id="order-with-generic-list-lineitem" class="Order"
+ extends="lite-order-result-by-name" >
+ <result property="LineItemsGenericList" column="Order_ID" select="GetLineItemsForOrder" />
+ </resultMap>
+
<resultMap id="order-with-lines-result" class="Order"
extends="lite-order-result-by-name" >
<result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="GetLineItemsForOrder" />
@@ -188,7 +193,13 @@
</resultMaps>
<statements>
-
+
+ <statement id="GetOrderWithGenricListLineItem"
+ parameterClass="Integer"
+ resultMap="order-with-generic-list-lineitem" >
+ select * from Orders where Order_ID = #value#
+ </statement>
+
<statement id="GetOrderByHashTable"
parameterClass="Int"
resultMap="order-hash" >
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/Order.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/Order.xml?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/Order.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/PostgreSQL/Npgsql/Order.xml Tue Feb 14 12:07:27 2006
@@ -16,8 +16,13 @@
<resultMap id="credit-card-result" class="string">
<result property="value" column="Order_CardNumber"/>
</resultMap>
- <!-- -->
- <resultMap id="order-with-lines-result" class="Order"
+
+ <resultMap id="order-with-generic-list-lineitem" class="Order"
+ extends="lite-order-result-by-name" >
+ <result property="LineItemsGenericList" column="Order_ID" select="GetLineItemsForOrder" />
+ </resultMap>
+
+ <resultMap id="order-with-lines-result" class="Order"
extends="lite-order-result-by-name" >
<result property="LineItemsIList" lazyLoad="true" column="Order_ID" select="GetLineItemsForOrder" />
</resultMap>
@@ -188,7 +193,12 @@
</resultMaps>
<statements>
-
+ <statement id="GetOrderWithGenricListLineItem"
+ parameterClass="Integer"
+ resultMap="order-with-generic-list-lineitem" >
+ select * from Orders where Order_ID = #value#
+ </statement>
+
<statement id="GetOrderByHashTable"
parameterClass="Int"
resultMap="order-hash" >
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs Tue Feb 14 12:07:27 2006
@@ -67,7 +67,14 @@
string fileName = "sqlmap" + "_" + ConfigurationSettings.AppSettings["database"] + "_" + ConfigurationSettings.AppSettings["providerType"] + ".config";
#endif
- sqlMap = builder.Configure(fileName);
+ try
+ {
+ sqlMap = builder.Configure(fileName);
+ }
+ catch(Exception ex)
+ {
+ Console.WriteLine(ex.StackTrace.ToString());
+ }
if ( sqlMap.DataSource.DbProvider.Name.IndexOf("PostgreSql")>=0)
{
Added: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/Generics/ResiltMapTest.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/Generics/ResiltMapTest.cs?rev=377813&view=auto
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/Generics/ResiltMapTest.cs (added)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/Generics/ResiltMapTest.cs Tue Feb 14 12:07:27 2006
@@ -0,0 +1,59 @@
+using System;
+using System.Collections;
+using System.Configuration;
+using System.Collections.Generic;
+
+using NUnit.Framework;
+
+using IBatisNet.DataMapper.Test.Domain;
+
+namespace IBatisNet.DataMapper.Test.NUnit.SqlMapTests.Generics
+{
+ [TestFixture]
+ public class ResultMapTest : BaseTest
+ {
+ #region SetUp & TearDown
+
+ /// <summary>
+ /// SetUp
+ /// </summary>
+ [SetUp]
+ public void Init()
+ {
+ InitScript(sqlMap.DataSource, ScriptDirectory + "account-init.sql");
+ InitScript(sqlMap.DataSource, ScriptDirectory + "account-procedure.sql", false);
+ InitScript(sqlMap.DataSource, ScriptDirectory + "order-init.sql");
+ InitScript(sqlMap.DataSource, ScriptDirectory + "line-item-init.sql");
+ InitScript(sqlMap.DataSource, ScriptDirectory + "enumeration-init.sql");
+ }
+
+ /// <summary>
+ /// TearDown
+ /// </summary>
+ [TearDown]
+ public void Dispose()
+ { /* ... */ }
+
+ #endregion
+
+ #region Result Map test
+
+ /// <summary>
+ /// Test generic Ilist
+ /// order.LineItemsGenericList
+ /// </summary>
+ [Test]
+ public void TestGenricListMapping()
+ {
+ Order order = sqlMap.QueryForObject<Order>("GetOrderWithGenricListLineItem", 1);
+
+ AssertOrder1(order);
+
+ // Check generic IList collection
+ Assert.IsNotNull(order.LineItemsGenericList);
+ Assert.AreEqual(2, order.LineItemsGenericList.Count);
+
+ }
+ #endregion
+ }
+}
Propchange: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/Generics/ResiltMapTest.cs
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/Generics/ResiltMapTest.cs
------------------------------------------------------------------------------
svn:keywords = Id LastChangedDate LastChangedBy
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/ReadMe.txt
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/ReadMe.txt?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/ReadMe.txt (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/ReadMe.txt Tue Feb 14 12:07:27 2006
@@ -15,4 +15,7 @@
create a file named DataBase.config with your own value for datasource.
(WARNInG : don't included it in the solution and don't commit it in SVN)
Put it in the bin/debug directory
+
+4/ To test for .NET V2, enabled provider 'sqlServer2.0' and
+ set <provider name="sqlServer2.0"/> in SqlMap_MSSQL_SqlClient.config
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/ChangeLog.txt
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/ChangeLog.txt?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/ChangeLog.txt (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/ChangeLog.txt Tue Feb 14 12:07:27 2006
@@ -1,10 +1,26 @@
IBatisNet Change Log
------------------------------
-1.3 - XX/XX/XXXX
+1.4 - XX/XX/XXX
+------------------------------
+- Added Support for .NET V2 and Generic
+
+ public T QueryForObject<T>(string statementName, object parameterObject);
+ public T QueryForObject<T>(string statementName, object parameterObject, T instanceObject);
+
+ public IList<T> QueryForList<T>(string statementName, object parameterObject);
+ public IList<T> QueryForList<T>(string statementName, object parameterObject, int skipResults, int maxResults);
+ public void QueryForList<T>(string statementName, object parameterObject, IList<T> resultObject);
+
+ public IList<T> QueryWithRowDelegate<T>(string statementName, object parameterObject, RowDelegate<T> rowDelegate);
+
+ [also support object with generic list propertie Order{public IList<LineItem> LineItemsGenericList{...}};]
+
+------------------------------
+1.3 - 15/12/2005
------------------------------
- - Added support for Implicit Result Maps as
- <result property='author.firstName column= Persons.FirstName/>
+ <result property='author.firstName column=Persons.FirstName/>
or
SELECT Persons.FirstName as 'author.firstName
- Added support to relation 1:0
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs Tue Feb 14 12:07:27 2006
@@ -67,6 +67,7 @@
{
ExecuteQueryForObject =0,
ExecuteQueryForIList,
+ ExecuteQueryForGenericIList,
ExecuteQueryForArrayList,
ExecuteQueryForStrongTypedIList
}
@@ -1114,7 +1115,7 @@
postSelect.Statement.ExecuteQueryForList(session, postSelect.Keys, (IList)values);
ObjectProbe.SetPropertyValue( postSelect.Target, postSelect.ResultProperty.PropertyName, values);
}
- if (postSelect.Method == ExecuteMethod.ExecuteQueryForArrayList)
+ else if (postSelect.Method == ExecuteMethod.ExecuteQueryForArrayList)
{
IList values = postSelect.Statement.ExecuteQueryForList(session, postSelect.Keys);
Type elementType = postSelect.ResultProperty.PropertyInfo.PropertyType.GetElementType();
@@ -1127,11 +1128,47 @@
postSelect.ResultProperty.PropertyInfo.SetValue(postSelect.Target, array, null);
}
- else if (postSelect.Method == ExecuteMethod.ExecuteQueryForObject)
- {
- object value = postSelect.Statement.ExecuteQueryForObject(session, postSelect.Keys);
- ObjectProbe.SetPropertyValue( postSelect.Target, postSelect.ResultProperty.PropertyName, value);
- }
+ else if (postSelect.Method == ExecuteMethod.ExecuteQueryForGenericIList)
+ {
+ // How to: Examine and Instantiate Generic Types with Reflection
+ // http://msdn2.microsoft.com/en-us/library/b8ytshk6.aspx
+
+ Type[] typeArgs = postSelect.ResultProperty.PropertyInfo.PropertyType.GetGenericArguments();
+ Type definition = typeof(IList<>);
+ Type constructedType = definition.MakeGenericType(typeArgs);
+ Type elementType = postSelect.ResultProperty.PropertyInfo.PropertyType.GetGenericArguments()[0];
+
+ Type mappedStatementType = postSelect.Statement.GetType();
+
+ Type[] typeArguments = {typeof(IDalSession), typeof(object)};
+
+ MethodInfo[] mis = mappedStatementType.GetMethods(BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance);
+ MethodInfo mi = null;
+ foreach(MethodInfo m in mis)
+ {
+ if (m.IsGenericMethod &&
+ m.Name == "ExecuteQueryForList" &&
+ m.GetParameters().Length==2)
+ {
+ mi = m;
+ break;
+ }
+ }
+
+ MethodInfo miConstructed = mi.MakeGenericMethod(elementType);
+
+ // Invoke the method.
+ object[] args = {session, postSelect.Keys};
+ object values = miConstructed.Invoke(postSelect.Statement, args);
+
+ ObjectProbe.SetPropertyValue(postSelect.Target, postSelect.ResultProperty.PropertyName, values);
+
+ }
+ else if (postSelect.Method == ExecuteMethod.ExecuteQueryForObject)
+ {
+ object value = postSelect.Statement.ExecuteQueryForObject(session, postSelect.Keys);
+ ObjectProbe.SetPropertyValue(postSelect.Target, postSelect.ResultProperty.PropertyName, value);
+ }
}
}
@@ -1283,11 +1320,16 @@
postSelect.Method = ExecuteMethod.ExecuteQueryForStrongTypedIList;
}
}
- }
- else // The ResultProperty is map to a .Net object
- {
- postSelect.Method = ExecuteMethod.ExecuteQueryForObject;
}
+ else if ( mapping.PropertyInfo.PropertyType.IsGenericType &&
+ mapping.PropertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(IList<>))
+ {
+ postSelect.Method = ExecuteMethod.ExecuteQueryForGenericIList;
+ }
+ else // The ResultProperty is map to a .Net object
+ {
+ postSelect.Method = ExecuteMethod.ExecuteQueryForObject;
+ }
#endregion
if (!mapping.IsLazyLoad)
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs?rev=377813&r1=377812&r2=377813&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs Tue Feb 14 12:07:27 2006
@@ -678,7 +678,7 @@
#endregion
#region QueryForObject .NET 2.0
- #if dotnet2
+#if dotnet2
/// <summary>
/// Executes a Sql SELECT statement that returns that returns data
/// to populate a single object instance.
@@ -762,7 +762,7 @@
return result;
}
- #endif
+#endif
#endregion
#region QueryForMap, QueryForDictionary
@@ -993,7 +993,7 @@
#endregion
#region QueryForList .NET 2.0
- #if dotnet2
+#if dotnet2
/// <summary>
/// Executes a Sql SELECT statement that returns data to populate
/// a number of result objects.
@@ -1126,7 +1126,7 @@
}
}
}
- #endif
+#endif
#endregion
#region QueryForPaginatedList