I'm using Hibernate 2.1.1.
My mapping files were generated with Middlegen R3.
------------------
Mapping file
------------------
MpRequisicaoSq044
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping>
<!--
Created by Middlegen Hibernate plugin
http://boss.bekk.no/boss/middlegen/
http://hibernate.sourceforge.net/
-->
<class
name="vo.MpRequisicaoSq044"
table="mp_requisicao_sq044"
>
<id
name="id"
type="long"
column="id"
>
<generator class="increment" />
</id>
<property
name="dataRequisicao"
type="java.sql.Date"
column="data_requisicao"
not-null="true"
length="4"
/>
<property
name="estado"
type="java.lang.String"
column="estado"
length="1"
/>
<!-- associations -->
<!-- bi-directional one-to-many association to MpReqItem -->
<set
name="mpReqItems"
lazy="true"
inverse="true"
>
<key>
<column name="mp_requisicao_fk" />
</key>
<one-to-many
class="vo.MpReqItem"
/>
</set>
</class>
</hibernate-mapping>
------------------
Method code
------------------
Code:
( ... )
List res = session.find("from vo.MpRequisicaoSq044 mr left join fetch mr.mpReqItems order by mr.dataRequisicao");
( ... )
---------------------------
Output (System.out)
---------------------------
Code:
----- MP_REQUISICAO -----
ID: 2 + DATA: 2004-02-20
----- MP_REQ_ITEM -----
ID: 2 + QTD: 200
ID: 2 + QTD: 100
------------------------------------
----- MP_REQUISICAO -----
ID: 2 + DATA: 2004-02-20
----- MP_REQ_ITEM -----
ID: 2 + QTD: 200
ID: 2 + QTD: 100
------------------------------------
----- MP_REQUISICAO -----
ID: 4 + DATA: 2004-02-27
----- MP_REQ_ITEM -----
ID: 4 + QTD: 200
ID: 4 + QTD: 300
------------------------------------
----- MP_REQUISICAO -----
ID: 4 + DATA: 2004-02-27
----- MP_REQ_ITEM -----
ID: 4 + QTD: 200
ID: 4 + QTD: 300
------------------------------------
In my output,
MP_REQUISICAO is being repeated the number of times that
MP_REQ_ITEM appears in its set's.
Shouldn't "left fetch join" retrieve a list of unique
MpRequisicaoSq044 with each "set" initialized with the corresponding
mpReqItems objects?
Please help. Need to know because it has some impact on project.
And if this is the normal behaviour, then what's the workarround.
Thanks in advance.