You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 9, 2017. It is now read-only.
Reporter: Ostap Bender
Hi All,
I guess this is a corner case but it is pretty important one for projects
with legacy data models.
Let say there is a table in DB that contains:
Column Type
id int
s1 string
s2 string
s3 string
Also let say it is modeled (historically) by two immutable objects:
public class ObjX
{
private final int id;
private final String s1;
private final ObjY objY;
public ObjX( int id, String s1, ObjY objY )
{
...
}
}
public class ObjY
{
private final String s2;
private final String s3;
public ObjY( String s2, String s3 )
{
...
}
}
In this case there seems to be no way to build a result map for ObjX in
iBatis without changing ObjX code but what if we cannot change it? And the
requirement is to create objects via constructors only.
It would be nice if we could use resultMap in <constructor>/<arg> element.
This way one could write something like:
<resultMap type="ObjX" id="ObjXResult">
<constructor>
<idArg column="id" javaType="_int" />
<arg column="s1" javaType="String" />
<arg javaType="ObjY" resultMap="ObjYResult"/>
</constructor>
</resultMap>
<resultMap type="ObjY" id="ObjYResult">
<constructor>
<arg column="s2" javaType="String" />
<arg column="s3" javaType="String" />
</constructor>
</resultMap>
Comparable result could be achieved with TypeHandler but it will require
column names to be hard-coded in the TypeHandler implementation also will
require adding one TypeHandler per each such a case.
Original issue reported on code.google.com by [email protected] on 17 May 2010 at 1:38
The text was updated successfully, but these errors were encountered:
Original issue reported on code.google.com by
[email protected]
on 17 May 2010 at 1:38The text was updated successfully, but these errors were encountered: