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 2005/08/04 07:15:00 UTC
svn commit: r227305 - in /ibatis/trunk/cs/mapper: IBatisNet.DataMapper.Test/
IBatisNet.DataMapper.Test/Domain/
IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/
IBatisNet.DataMapper.Test/NUnit/SqlMapTests/
IBatisNet.DataMapper.Test/Scripts/MSSQL/ IBatisN...
Author: gbayon
Date: Wed Aug 3 22:14:37 2005
New Revision: 227305
URL: http://svn.apache.org/viewcvs?rev=227305&view=rev
Log:
- Completed support for relation 1-0 + added a complex unit test
Added:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/A.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/B.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/C.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/D.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/E.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/F.cs
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Other.xml
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/BaseTest.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/other-init.sql
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs
Added: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/A.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/A.cs?rev=227305&view=auto
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/A.cs (added)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/A.cs Wed Aug 3 22:14:37 2005
@@ -0,0 +1,46 @@
+using System;
+
+namespace IBatisNet.DataMapper.Test.Domain
+{
+ /// <summary>
+ /// Summary description for A.
+ /// </summary>
+ public class A
+ {
+ private string _id;
+ private string _libelle;
+ private B _b;
+ private E _e;
+ private F _f;
+
+ public B B
+ {
+ get { return _b; }
+ set { _b = value; }
+ }
+
+ public E E
+ {
+ get { return _e; }
+ set { _e = value; }
+ }
+
+ public F F
+ {
+ get { return _f; }
+ set { _f = value; }
+ }
+
+ public string Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+
+ public string Libelle
+ {
+ get { return _libelle; }
+ set { _libelle = value; }
+ }
+ }
+}
Added: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/B.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/B.cs?rev=227305&view=auto
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/B.cs (added)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/B.cs Wed Aug 3 22:14:37 2005
@@ -0,0 +1,40 @@
+using System;
+
+namespace IBatisNet.DataMapper.Test.Domain
+{
+ /// <summary>
+ /// Summary description for B.
+ /// </summary>
+ public class B
+ {
+ private C _c;
+ private string _id;
+ private string _libelle;
+
+ public string Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+
+ public string Libelle
+ {
+ get { return _libelle; }
+ set { _libelle = value; }
+ }
+
+ public C C
+ {
+ get { return _c; }
+ set { _c = value; }
+ }
+
+ private D _d;
+
+ public D D
+ {
+ get { return _d; }
+ set { _d = value; }
+ }
+ }
+}
Added: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/C.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/C.cs?rev=227305&view=auto
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/C.cs (added)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/C.cs Wed Aug 3 22:14:37 2005
@@ -0,0 +1,25 @@
+using System;
+
+namespace IBatisNet.DataMapper.Test.Domain
+{
+ /// <summary>
+ /// Summary description for C.
+ /// </summary>
+ public class C
+ {
+ private string _id;
+ private string _libelle;
+
+ public string Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+
+ public string Libelle
+ {
+ get { return _libelle; }
+ set { _libelle = value; }
+ }
+ }
+}
Added: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/D.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/D.cs?rev=227305&view=auto
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/D.cs (added)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/D.cs Wed Aug 3 22:14:37 2005
@@ -0,0 +1,25 @@
+using System;
+
+namespace IBatisNet.DataMapper.Test.Domain
+{
+ /// <summary>
+ /// Summary description for D.
+ /// </summary>
+ public class D
+ {
+ private string _id;
+ private string _libelle;
+
+ public string Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+
+ public string Libelle
+ {
+ get { return _libelle; }
+ set { _libelle = value; }
+ }
+ }
+}
Added: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/E.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/E.cs?rev=227305&view=auto
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/E.cs (added)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/E.cs Wed Aug 3 22:14:37 2005
@@ -0,0 +1,25 @@
+using System;
+
+namespace IBatisNet.DataMapper.Test.Domain
+{
+ /// <summary>
+ /// Summary description for E.
+ /// </summary>
+ public class E
+ {
+ private string _id;
+ private string _libelle;
+
+ public string Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+
+ public string Libelle
+ {
+ get { return _libelle; }
+ set { _libelle = value; }
+ }
+ }
+}
Added: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/F.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/F.cs?rev=227305&view=auto
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/F.cs (added)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Domain/F.cs Wed Aug 3 22:14:37 2005
@@ -0,0 +1,25 @@
+using System;
+
+namespace IBatisNet.DataMapper.Test.Domain
+{
+ /// <summary>
+ /// Summary description for F.
+ /// </summary>
+ public class F
+ {
+ private string _id;
+ private string _libelle;
+
+ public string Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+
+ public string Libelle
+ {
+ get { return _libelle; }
+ set { _libelle = value; }
+ }
+ }
+}
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj?rev=227305&r1=227304&r2=227305&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/IBatisNet.DataMapper.Test.csproj Wed Aug 3 22:14:37 2005
@@ -182,6 +182,11 @@
BuildAction = "None"
/>
<File
+ RelPath = "Domain\A.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "Domain\Account.cs"
SubType = "Code"
BuildAction = "Compile"
@@ -197,11 +202,21 @@
BuildAction = "Compile"
/>
<File
+ RelPath = "Domain\B.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "Domain\Book.cs"
SubType = "Code"
BuildAction = "Compile"
/>
<File
+ RelPath = "Domain\C.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "Domain\Category.cs"
SubType = "Code"
BuildAction = "Compile"
@@ -217,6 +232,11 @@
BuildAction = "Compile"
/>
<File
+ RelPath = "Domain\D.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "Domain\Document.cs"
SubType = "Code"
BuildAction = "Compile"
@@ -227,7 +247,17 @@
BuildAction = "Compile"
/>
<File
+ RelPath = "Domain\E.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "Domain\Enumeration.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "Domain\F.cs"
SubType = "Code"
BuildAction = "Compile"
/>
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Other.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Other.xml?rev=227305&r1=227304&r2=227305&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Other.xml (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Maps/MSSQL/SqlClient/Other.xml Wed Aug 3 22:14:37 2005
@@ -5,6 +5,13 @@
<alias>
<typeAlias alias="Other" type="IBatisNet.DataMapper.Test.Domain.Other, IBatisNet.DataMapper.Test"/>
+ <typeAlias alias="A" type="IBatisNet.DataMapper.Test.Domain.A, IBatisNet.DataMapper.Test"/>
+ <typeAlias alias="B" type="IBatisNet.DataMapper.Test.Domain.B, IBatisNet.DataMapper.Test"/>
+ <typeAlias alias="C" type="IBatisNet.DataMapper.Test.Domain.C, IBatisNet.DataMapper.Test"/>
+ <typeAlias alias="D" type="IBatisNet.DataMapper.Test.Domain.D, IBatisNet.DataMapper.Test"/>
+ <typeAlias alias="E" type="IBatisNet.DataMapper.Test.Domain.E, IBatisNet.DataMapper.Test"/>
+ <typeAlias alias="F" type="IBatisNet.DataMapper.Test.Domain.F, IBatisNet.DataMapper.Test"/>
+
</alias>
<resultMaps>
@@ -14,10 +21,66 @@
<result property="Bool" column="Other_Bit"/>
<result property="Bool2" column="Other_String" typeHandler="OuiNonBool"/>
</resultMap>
+
+ <resultMap id="A-result" class="A" >
+ <result property="Id" column="A_ID"/>
+ <result property="Libelle" column="A_Libelle"/>
+ <result property="B" resultMapping="Other.B-result"/>
+ <result property="E" resultMapping="Other.E-result"/>
+ <result property="F" resultMapping="Other.F-result"/>
+ </resultMap>
+
+ <resultMap id="B-result" class="B" >
+ <result property="Id" column="B_ID"/>
+ <result property="Libelle" column="B_Libelle"/>
+ <result property="C" resultMapping="Other.C-result"/>
+ <result property="D" resultMapping="Other.D-result"/>
+ </resultMap>
+
+ <resultMap id="C-result" class="C" >
+ <result property="Id" column="C_ID"/>
+ <result property="Libelle" column="C_Libelle"/>
+ </resultMap>
+
+ <resultMap id="D-result" class="D" >
+ <result property="Id" column="D_ID"/>
+ <result property="Libelle" column="D_Libelle"/>
+ </resultMap>
+
+ <resultMap id="E-result" class="E" >
+ <result property="Id" column="E_ID"/>
+ <result property="Libelle" column="E_Libelle"/>
+ </resultMap>
+
+ <resultMap id="F-result" class="F" >
+ <result property="Id" column="F_ID"/>
+ <result property="Libelle" column="F_Libelle"/>
+ </resultMap>
</resultMaps>
<statements>
+ <select id="SelectComplexJoined" resultMap="A-result">
+ SELECT
+ A.Id AS A_ID,
+ A.A_Libelle AS A_Libelle,
+ B.ID AS B_ID,
+ B.B_Libelle AS B_Libelle,
+ C.ID AS C_ID,
+ C.C_Libelle AS C_Libelle,
+ D.ID AS D_ID,
+ D.D_Libelle AS D_Libelle,
+ E.ID AS E_ID,
+ E.E_Libelle AS E_Libelle,
+ F.ID AS F_ID,
+ F.F_Libelle AS F_Libelle
+ FROM A
+ LEFT OUTER JOIN B ON A.B_ID = B.ID
+ LEFT OUTER JOIN C ON B.C_ID = C.ID
+ LEFT OUTER JOIN D ON B.D_ID = D.ID
+ LEFT OUTER JOIN E ON A.E_ID = E.ID
+ LEFT OUTER JOIN F ON A.F_ID = F.ID
+ </select>
<statement id="DynamicSelectByIntLong"
parameterClass="Hashtable"
resultMap="other-result">
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=227305&r1=227304&r2=227305&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 Wed Aug 3 22:14:37 2005
@@ -52,7 +52,6 @@
{
//DateTime start = DateTime.Now;
-// ConfigureHandler handler = new ConfigureHandler(Configure);
DomSqlMapBuilder builder = new DomSqlMapBuilder();
string fileName = "sqlmap" + "_" + ConfigurationSettings.AppSettings["database"] + "_" + ConfigurationSettings.AppSettings["providerType"] + ".config";
sqlMap = builder.Configure(fileName);
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs?rev=227305&r1=227304&r2=227305&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs Wed Aug 3 22:14:37 2005
@@ -648,11 +648,7 @@
}
/// <summary>
- /// Test ExecuteQueryForMap : Hashtable.
- /// </summary>
- /// <remarks>
- /// If the keyProperty is an integer, you must acces the map
- /// by map[integer] and not by map["integer"]
+ /// Test ExecuteQueryForWithJoined
/// </remarks>
[Test]
public void TestExecuteQueryForWithJoined()
@@ -664,6 +660,22 @@
order = sqlMap.QueryForObject("GetOrderJoinWithAccount",11) as Order;
Assert.IsNull(order.Account);
+ }
+
+ /// <summary>
+ /// Test ExecuteQueryFor With Complex Joined
+ /// </remarks>
+ [Test]
+ public void TestExecuteQueryForWithComplexJoined()
+ {
+ A a = sqlMap.QueryForObject("SelectComplexJoined",null) as A;
+
+ Assert.IsNotNull(a);
+ Assert.IsNotNull(a.B);
+ Assert.IsNotNull(a.B.C);
+ Assert.IsNull(a.B.D);
+ Assert.IsNotNull(a.E);
+ Assert.IsNull(a.F);
}
#endregion
Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/other-init.sql
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/other-init.sql?rev=227305&r1=227304&r2=227305&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/other-init.sql (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/Scripts/MSSQL/other-init.sql Wed Aug 3 22:14:37 2005
@@ -7,6 +7,32 @@
drop table [dbo].[Others]
END
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[A]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
+BEGIN
+ drop table [dbo].[A]
+END
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[B]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
+BEGIN
+ drop table [dbo].[B]
+END
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[C]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
+BEGIN
+ drop table [dbo].[C]
+END
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[D]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
+BEGIN
+ drop table [dbo].[D]
+END
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[E]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
+BEGIN
+ drop table [dbo].[E]
+END
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[F]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
+BEGIN
+ drop table [dbo].[F]
+END
+
+
CREATE TABLE [dbo].[Others] (
[Other_Int] [int] NULL ,
[Other_Long] [BigInt] NULL,
@@ -14,7 +40,106 @@
[Other_String] [varchar] (32) NOT NULL
) ON [PRIMARY]
+CREATE TABLE [dbo].[F] (
+ [ID] [varchar] (50) NOT NULL ,
+ [F_Libelle] [varchar] (50) NULL ,
+ CONSTRAINT [PK_F] PRIMARY KEY CLUSTERED
+ (
+ [ID]
+ ) ON [PRIMARY]
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[E] (
+ [ID] [varchar] (50) NOT NULL ,
+ [E_Libelle] [varchar] (50) NULL ,
+ CONSTRAINT [PK_E] PRIMARY KEY CLUSTERED
+ (
+ [ID]
+ ) ON [PRIMARY]
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[D] (
+ [ID] [varchar] (50) NOT NULL ,
+ [D_Libelle] [varchar] (50) NULL ,
+ CONSTRAINT [PK_D] PRIMARY KEY CLUSTERED
+ (
+ [ID]
+ ) ON [PRIMARY]
+) ON [PRIMARY]
+
+CREATE TABLE [dbo].[C] (
+ [ID] [varchar] (50) NOT NULL ,
+ [C_Libelle] [varchar] (50) NULL ,
+ CONSTRAINT [PK_C] PRIMARY KEY CLUSTERED
+ (
+ [ID]
+ ) ON [PRIMARY]
+) ON [PRIMARY]
+
+
+CREATE TABLE [dbo].[B] (
+ [ID] [varchar] (50) NOT NULL ,
+ [C_ID] [varchar] (50) NULL ,
+ [D_ID] [varchar] (50) NULL ,
+ [B_Libelle] [varchar] (50) NULL ,
+ CONSTRAINT [PK_B] PRIMARY KEY CLUSTERED
+ (
+ [ID]
+ ) ON [PRIMARY] ,
+ CONSTRAINT [FK_B_C] FOREIGN KEY
+ (
+ [C_ID]
+ ) REFERENCES [C] (
+ [ID]
+ ),
+ CONSTRAINT [FK_B_D] FOREIGN KEY
+ (
+ [D_ID]
+ ) REFERENCES [D] (
+ [ID]
+ )
+) ON [PRIMARY]
+
+
+CREATE TABLE [dbo].[A] (
+ [Id] [varchar] (50) NOT NULL ,
+ [B_ID] [varchar] (50) NULL ,
+ [E_ID] [varchar] (50) NULL ,
+ [F_ID] [varchar] (50) NULL ,
+ [A_Libelle] [varchar] (50) NULL
+ CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED
+ (
+ [Id]
+ ) ON [PRIMARY] ,
+ CONSTRAINT [FK_A_B] FOREIGN KEY
+ (
+ [B_ID]
+ ) REFERENCES [B] (
+ [ID]
+ ),
+ CONSTRAINT [FK_A_E] FOREIGN KEY
+ (
+ [E_ID]
+ ) REFERENCES [E] (
+ [ID]
+ ),
+ CONSTRAINT [FK_A_F] FOREIGN KEY
+ (
+ [F_ID]
+ ) REFERENCES [F] (
+ [ID]
+ )
+) ON [PRIMARY]
+
+
-- Creating Test Data
INSERT INTO [dbo].[Others] VALUES(1, 8888888, 0, 'Oui');
-INSERT INTO [dbo].[Others] VALUES(2, 9999999999, 1, 'Non');
\ No newline at end of file
+INSERT INTO [dbo].[Others] VALUES(2, 9999999999, 1, 'Non');
+
+INSERT INTO [dbo].[F] VALUES('f', 'fff');
+INSERT INTO [dbo].[E] VALUES('e', 'eee');
+INSERT INTO [dbo].[D] VALUES('d', 'ddd');
+INSERT INTO [dbo].[C] VALUES('c', 'ccc');
+INSERT INTO [dbo].[B] VALUES('b', 'c', null, 'bbb');
+INSERT INTO [dbo].[A] VALUES('a', 'b', 'e', null, 'aaa');
\ No newline at end of file
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=227305&r1=227304&r2=227305&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/MappedStatement.cs Wed Aug 3 22:14:37 2005
@@ -230,17 +230,23 @@
/// <param name="reader"></param>
/// <param name="resultMap"></param>
/// <param name="resultObject"></param>
- private void FillObjectWithReaderAndResultMap(RequestScope request,IDataReader reader,
+ private bool FillObjectWithReaderAndResultMap(RequestScope request,IDataReader reader,
ResultMap resultMap, object resultObject)
{
- request.IsRowDataFound = false;
-
+ bool rowDataFound = request.IsRowDataFound;
+ bool dataFound = false;
+
// For each Property in the ResultMap, set the property in the object
foreach(DictionaryEntry entry in resultMap.ColumnsToPropertiesMap)
{
+ request.IsRowDataFound = false;
ResultProperty property = (ResultProperty)entry.Value;
SetObjectProperty(request, resultMap, property, ref resultObject, reader);
+ dataFound = dataFound || request.IsRowDataFound;
}
+
+ request.IsRowDataFound = rowDataFound;
+ return dataFound;
}
/// <summary>
@@ -906,11 +912,11 @@
object obj = null;
obj = mapping.NestedResultMap.CreateInstanceOfResult();
- FillObjectWithReaderAndResultMap(request, reader, mapping.NestedResultMap, obj);
- if (request.IsRowDataFound == false)
+ if (FillObjectWithReaderAndResultMap(request, reader, mapping.NestedResultMap, obj) == false)
{
obj = null;
}
+
MappedStatement.SetValueOfProperty( ref target, mapping, obj );
}
else //'select' ResultProperty