[ 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.