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? 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 hardcoded in the TypeHandler implementation also will require adding one TypeHandler per each such a case. Thanks