ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ingmar Lötzsch <iloetz...@asci-systemhaus.de>
Subject Re: Please help with mapping Ibatis
Date Tue, 31 Mar 2009 08:14:53 GMT
> I have a class
> 
> public class Part{
> private Integer id; 
> private String name;
> private Bar bar;
> 
> ....
> getters/setters 
> }
> 
> I have a mapping for part and for there part I am adding aliases for column
> names after join.
> 
> I am sure it is not correct way to do it. Please advice how to do correct
> way.
> 
> Current mapping looks like
> 
>   <resultMap id="part"
>     class="domain.Part">
>     <result property="name" column="name" />
>     <result property="id" column="id" />
>     <result property="bar" resultMap="part.bar" />
>   </resultMap>
> 
> 
>   <resultMap id="otherPart"
>     class="domain.Part">
>     <result property="name" column="otherName" />
>     <result property="id" column="otherId" />
> <result property="bar" resultMap="part.otherBar" />
>   </resultMap>
> 
> SQL
> 
> select
> p1.id,
> p1.name,
> b.*,
> p1.id as otherId,
> p1.name as otherName
> from PART p1 
> join BAR b on p1.id=b.p1Id
> join PART p2 on p2.id=b.p2Id
> 
> 
> Basically question is
> How to map the objects if during the querying the same table is join more
> then one time?

That depends on the object graph, you want to get. An entity
relationship diagram or class diagram would be helpful. Supposed you have

Bar 1 -- 2 Part

and

Bar
-part1 : Part
-part2 : Part

and want to get a list of bars, you can do the following

<resultMap id="bar.result" resultClass="domain.Bar">
	<result property="part1" resultMap="part"/>
	<result property="part2" resultMap="otherPart"/>
...
</resultMap>

<select id="bar.selectAll" resultMap="bar.result">
	select
	p1.id,
	p1.name,
	b.*,
	p1.id as otherId,
	p1.name as otherName
	from PART p1
	join BAR b on p1.id=b.p1Id
	join PART p2 on p2.id=b.p2Id
</select>

List<Bar> list = getSqlMapClientTemplate().queryForList("bar.selectAll");

Ingmar

Mime
View raw message