[
https://issues.apache.org/jira/browse/IBATISNET-263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gilles Bayon closed IBATISNET-263.
----------------------------------
Resolution: Fixed
in SVN
> Support for circular reference
> ------------------------------
>
> Key: IBATISNET-263
> URL: https://issues.apache.org/jira/browse/IBATISNET-263
> Project: iBatis for .NET
> Issue Type: Improvement
> Components: DataMapper
> Affects Versions: DataMapper 3.0
> Reporter: Gilles Bayon
> Assignee: Gilles Bayon
> Priority: Minor
> Fix For: DataMapper 3.0
>
>
> To avoid creation of new Instance of the same object during an ibatis
> request, add the 'keys' attribute on resultMap tag to specify the properties
> identifiers
> public class Order
> {
> public Account {get;set}
> ...
> }
> <resultMap id="account-constructor-circular" keys="identifiant"
> class="Account" >
> <constructor>
> <argument argumentName="identifiant" column="Account_ID"/>
> <argument argumentName="firstName"
> column="Account_FirstName"/>
> <argument argumentName="lastName"
> column="Account_LastName"/>
> </constructor>
> </resultMap>
> <resultMap id="order-result-circular" extends="base-order-result"
> class="Order">
> <result property="Account"
> resultMapping="Account.account-constructor-circular"/>
> </resultMap>
> <select id="GetOrderWithAcccount" resultMap="order-result-circular" >
> SELECT
> *
> FROM
> Orders o
> JOIN
> Accounts a
> ON
> o.Account_Id = A.Account_Id
> </select>
> List<Order> list =
> (List<Order>)dataMapper.QueryForList<Order>("GetOrderWithAcccount", null);
> Account account1 = list.Find(delegate(Order order) { return order.Id==1;
> }).Account;
> Account account2 = list.Find(delegate(Order order) { return order.Id == 10;
> }).Account;
> Assert.That(account1, Is.SameAs(account2));
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.