Hibernate version:
3.0
Mapping documents:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.allstate.pega.test.SourceParty" table="KFTCL">
<composite-id name="clientId" class="com.allstate.pega.test.SourcePartyPk">
<key-property name="clientId" column="CLIENT_ID1" type="int"/>
<key-property name="clientId2" column="CLIENT_ID2" type="int"/>
</composite-id>
<set name="partyPerson" inverse="true" outer-join="true" cascade="all">
<key>
<column name="CLIENT_ID1"/>
<column name="CLIENT_ID2"/>
</key>
<one-to-many class="com.allstate.pega.test.PartyPerson"/>
</set>
</class>
<class name="com.allstate.pega.test.PartyPerson" table="KFTCPAR">
<composite-id name="clientId" class="com.allstate.pega.test.PartyPersonPk">
<key-property name="clientId" column="CLIENT_ID1" type="int" />
<key-property name="clientId2" column="CLIENT_ID2" type="int"/>
</composite-id>
<many-to-one name="sourceParty" class="com.allstate.pega.test.SourceParty" update="false" insert="false" not-null="true" fetch="join" lazy="false">
<column name="CLIENT_ID1"/>
<column name="CLIENT_ID2"/>
</many-to-one>
<property name="policyId" column="POLICY_ID1" type="int"/>
<property name="policyId2" column="POLICY_ID2" type="int"/>
</class>
</hibernate-mapping>
Code between sessionFactory.openSession() and session.close():
SourcePartyPk pk = new SourcePartyPk();
pk.setClientId(new Integer(358481700));
pk.setClientId2(new Integer(81));
SourceParty l = (SourceParty)service.load(com.allstate.pega.test.SourceParty.class, pk);
for(Iterator it = l.getPartyPerson().iterator(); it.hasNext();){
PartyPerson pp =(PartyPerson)it.next();
System.err.println("-->"+pp.getPolicyId() + ":" + pp.getPolicyId2());
}
Full stack trace of any exception that occurs:
none
Name and version of the database you are using:
Oracle 10g
The generated SQL (show_sql=true):
select sourcepart0_.CLIENT_ID1 as CLIENT1_4_1_, sourcepart0_.CLIENT_ID2 as CLIENT2_4_1_, partyperso1_.CLIENT_ID1 as CLIENT1_3_, partyperso1_.CLIENT_ID2 as CLIENT2_3_, partyperso1_.CLIENT_ID1 as CLIENT1_5_0_, partyperso1_.CLIENT_ID2 as CLIENT2_5_0_, partyperso1_.POLICY_ID1 as POLICY3_5_0_, partyperso1_.POLICY_ID2 as POLICY4_5_0_ from TEST.KFTCL sourcepart0_ left outer join TEST.KFTCPAR partyperso1_ on sourcepart0_.CLIENT_ID1=partyperso1_.CLIENT_ID1 and sourcepart0_.CLIENT_ID2=partyperso1_.CLIENT_ID2 where sourcepart0_.CLIENT_ID1=? and sourcepart0_.CLIENT_ID2=?
Debug level Hibernate log excerpt:
-----------------------------------------------------------------------------------
the generated SQL returns three rows, but my one-to-many collection only has 1 object
|