You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Gilles Bayon (JIRA)" <ib...@incubator.apache.org> on 2008/05/18 08:27:55 UTC
[jira] Created: (IBATISNET-263) Support for circular reference
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.
[jira] Closed: (IBATISNET-263) Support for circular reference
Posted by "Gilles Bayon (JIRA)" <ib...@incubator.apache.org>.
[ 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.