I'm generating my mapping files with Middlegen R3.
I got serious problems when I first tried to use "composite-id's". Now, the problem was found. Middlegen is not generating the composite-id components in the right order. In the example below,
ManPrev should come first and then
ManPrevOper. This gave me "referential integraty violation" each time I tried an insert.
MpMpo
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.MpMpo"
table="mp_mpo"
>
<composite-id name="comp_id" class="vo.MpMpoPK">
<!-- bi-directional many-to-one association to ManPrevOper -->
<key-many-to-one
name="manPrevOper"
class="vo.ManPrevOper"
>
<column name="man_prev_oper_fk" />
</key-many-to-one>
<!-- bi-directional many-to-one association to ManPrev -->
<key-many-to-one
name="manPrev"
class="vo.ManPrev"
>
<column name="man_prev_fk" />
</key-many-to-one>
</composite-id>
<property
name="estado"
type="java.lang.String"
column="estado"
length="1"
/>
<!-- associations -->
<!-- bi-directional one-to-many association to HistoricoManPrev -->
<set
name="historicoManPrevs"
lazy="true"
inverse="true"
>
<key>
<column name="man_prev_fk" />
<column name="man_prev_oper_fk" />
</key>
<one-to-many
class="vo.HistoricoManPrev"
/>
</set>
</class>
</hibernate-mapping>
Switched the two and know it works.
Should this be posted on JIRA David?