親オブジェクトとその詳細オブジェクトがあります。マッピングは以下のコードで言及されています -
親オブジェクトのマッピング
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class lazy = "false" name="com.test.model.Parent" table="parent">
<id name="parentId" column="PARENT_ID" type="long">
<generator class="sequence">
<param name="sequence">PARENT_ID_SEQ</param>
</generator>
</id>
<set
name="childSet"
lazy="false"
cascade="all-delete-orphan"
inverse="true"
table = "child"
order-by = "CHILD_ID"
>
<key column="PARENT_ID"/>
<one-to-many class="com.test.model.Child"/>
</set>
</class>
</hibernate-mapping>
子オブジェクトのマッピング
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.test.model.Child" table="hot_Cash_coupon">
<id name="childId" column="CHILD_ID" type="long">
<generator class="sequence">
<param name="sequence">CHILD_ID_SEQ</param>
</generator>
</id>
<many-to-one name="parent"
class="com.test.model.Parent" column="PARENT_ID" not-null="true" />
</class>
</hibernate-mapping>
私は、たとえば 3 人の子供を持つ新しい親を救うことができます。さて、更新操作では、
parent.childSet では、すべての値を削除して新しい値を設定しています。私が session.update(parent) を行うとき、私の要件は、
- 親の既存のすべての子を削除します-parent.childSetにはそれらがありません。
- parent.childSet で使用可能な新しい値を挿入します。
ここで、parent.childSet は、親クラス/HBM マッピングのセットを意味します。
今起こっている問題は、
- 例外をスローしています-「("CHILD"."PARENT_ID") に NULL を挿入できません」
質問が明確でない場合は、質問を更新し続けます。
御時間ありがとうございます!