The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

sai kiran (1) [Avatar] Offline
#1
hi, I have two hibernate mapping files for tables TRPJOB_RPT_PARM(parent) and TRPJOB_RPT_PARM_VAL(child). They should have one to many relationship.

In TRPJOB_RPT_PARM table JOB_RPT_PARM_ID is the key. In TRPJOB_RPT_PARM_VAL, I dont ve a primary key column so I am declaring a composite key in the mapping file containg JOB_RPT_PARM_ID and VALUE columns.

I face the problem when I try to save to TRPJOB_RPT_PARM. It should automatically save the values to TRPJOB_RPT_PARM_VAL. It saves it. but
JOB_RPT_PARM_ID gets filled with 0 values, where as it is supposed to get the values from JOB_RPT_PARM_ID in TRPJOB_RPT_PARM table.

If I make inverse=false, in one-to-many relationship in mapping.xml then it works fine. But then deletion gives me the problem as Hibernate is trying to update the foreign key column(JOB_RPT_PARM_ID) to null instead of deleting. I get Constraing violated exception can not delete the collection.

pls find below the hibernate mapping files.

parent file

<?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>
<!-- <br /> Created by the Middlegen Hibernate plugin 2.1 <br /> <br /> http://boss.bekk.no/boss/middlegen/ <br /> http://www.hibernate.org/ <br /> -->

<class >
name="com.metlife.ins.ereport._2.bi.model.Parameter"
table="TRPJOB_RPT_PARM"
schema="F0654DBA"
>
<meta attribute="class-description" inherit="false">
com.metlife.ins.ereport._2.appl.model.hibernate
</meta>
<meta attribute="implement-equals" inherit="false">true</meta>

<id >
name="jobRptParmId"
type="long"
column="JOB_RPT_PARM_ID"
>
<generator class="sequence">
<param name="sequence">TRPPKG_PARM_SEQ</param>
</generator>

</id>

<property >
name="jobRptId"
type="long"
column="JOB_RPT_ID"
not-null="true"
insert="false"
update="false"
/>

<many-to-one name="parentReport" column="JOB_RPT_ID" >
class="com.metlife.ins.ereport._2.bi.model.Report"></many-to-one>


<property >
name="parmId"
type="long"
column="PARM_ID"

/>

<property >
name="name"
type="java.lang.String"
column="PARM_NM"

/>

<!-- Associations -->
<bag name="selectedValues" table="TRPJOB_RPT_PARM_VAL" inverse="false" cascade="all,delete-orphan">

<key>
<column name="JOB_RPT_PARM_ID"/>
</key>
<one-to-many class="com.metlife.ins.ereport._2.bi.model.ParameterValue" />
</bag>

</class>

</hibernate-mapping>


child file

<?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>
<!-- <br /> Created by the Middlegen Hibernate plugin 2.1 <br /> <br /> http://boss.bekk.no/boss/middlegen/ <br /> http://www.hibernate.org/ <br /> -->

<class >
name="com.metlife.ins.ereport._2.bi.model.ParameterValue"
table="TRPJOB_RPT_PARM_VAL"
schema="F0654DBA"
>
<meta attribute="class-description" inherit="false">
com.metlife.ins.ereport._2.appl.model.hibernate
</meta>
<meta attribute="implement-equals" inherit="false">true</meta>

<composite-id >
<key-property >
name="jobRptParmId"
type="long"
column="JOB_RPT_PARM_ID"
/>

<key-property >
name="value"
type="java.lang.String"
column="RPT_PARM_VAL"
/>

</composite-id >

<property >
name="displayValue"
type="java.lang.String"
column="RPT_PARM_DSPL_VAL"

/>

<property >
name="sortOrder"
type="int"
column="SORT_ORD"

/>

<many-to-one name="parentParam" class="com.metlife.ins.ereport._2.bi.model.Parameter" column="JOB_RPT_PARM_ID" insert="false" update="false">
</many-to-one>

</class>


</hibernate-mapping>


Any help would be greatly appreciated.

thanks
Sai Kiran