You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by "Goel, Sachin" <sa...@fidelity.co.in> on 2006/11/02 12:46:40 UTC

loading a complex property structure using iBatis

Hi

I am having tough time in loading a complex property structure using iBatis
with Java 1.4.

I have got an array[addInfo] in top level object[Person], this array has
custom object[AddInfo] which has an object as property[Value].

The objective is to write sql-map in such a way that select query returns
one/list of person object(s) with array and all nested objects populated
with appropriate data.


Table : Person
Name : Varchar2
Age : Number
HomeTown : int
Status : int

Table : Home Town
Id : Int
Name : Varchar2


Table : Status
Id : int
Value : Varchar2


Object : 
Person
{
	String name;
	int age;
	AddInfo[] addInfo;
}


AddInfo{
	String Type;
	Value val;
}


Value {
int id;
String value;
}

The idea is to keep object structure flexible so that other types may be
added later(current one being : Home Town and Status]  with out changing
object structure, but in database they are stored as direct column values. 

Result map is 
	<resultMap id="persons" class="com.fil.bo.Person">
		<result property="name" column="name"/>
		<result property="age" column="age"/>
	</resultMap>

SQL is 
<select id="getPersons" resultMap="persons"
parameterClass="com.fil.so.SearchPerson">			 
	SQL query with joins and dynamic clause
</select> 

The point I am struggling is how to specify array and nested object in
result map and get them populated using iBatis.


Any help/Pointers, greatly appreciated.


Thanks and Regards
Sachin

Re: loading a complex property structure using iBatis

Posted by Larry Meadors <lm...@apache.org>.
Arrays are not supported, use a List and it'll be fine.

Larry


On 11/2/06, Goel, Sachin <sa...@fidelity.co.in> wrote:
>
>
>
>
> Hi
>
> I am having tough time in loading a complex property structure using iBatis
> with Java 1.4.
>
> I have got an array[addInfo] in top level object[Person], this array has
> custom object[AddInfo] which has an object as property[Value].
>
> The objective is to write sql-map in such a way that select query returns
> one/list of person object(s) with array and all nested objects populated
> with appropriate data.
>
>
> Table : Person
> Name : Varchar2
> Age : Number
> HomeTown : int
> Status : int
>
> Table : Home Town
> Id : Int
> Name : Varchar2
>
>
> Table : Status
> Id : int
> Value : Varchar2
>
>
> Object :
> Person
> {
>         String name;
>         int age;
>         AddInfo[] addInfo;
> }
>
>
> AddInfo{
>         String Type;
>         Value val;
> }
>
>
> Value {
> int id;
> String value;
> }
>
> The idea is to keep object structure flexible so that other types may be
> added later(current one being : Home Town and Status]  with out changing
> object structure, but in database they are stored as direct column values.
>
> Result map is
>         <resultMap id="persons" class="com.fil.bo.Person">
>                 <result property="name" column="name"/>
>                 <result property="age" column="age"/>
>         </resultMap>
>
> SQL is
> <select id="getPersons" resultMap="persons"
> parameterClass="com.fil.so.SearchPerson">
>         SQL query with joins and dynamic clause
> </select>
>
> The point I am struggling is how to specify array and nested object in
> result map and get them populated using iBatis.
>
>
> Any help/Pointers, greatly appreciated.
>
>
> Thanks and Regards
> Sachin