好吧,所以我有2個對象,父母和孩子。孩子基本上是這樣的:休眠 - 自動分配外鍵給孩子?
public class Child implements Serializable
{
// primary (composite) key
private int parentId;
private String name;
// random value
private String val;
public Child(String name, String val) {
this.name = name;
this.val = val;
// note: parentId is not assigned a value
}
public void setParentId(int id) {
[...]
}
我想基本上是休眠,自動設置一次父對象被創建兒童的父ID。這是可能的還是必須在將父對象保存到數據庫之後將子對象添加到父對象?
父的XML映射看起來這樣:
`<map name="children" inverse="true" lazy="true" cascade="all,delete-orphan">
<cache usage="nonstrict-read-write"/>
<key column="parent_id"/>
<index column="child_name" type="string"/>
<one-to-many class="myPack.Child"/>
</map>`
和孩子的XML:
<hibernate-mapping package="myPack">
<class name="Child" table="child_tbl" lazy="true">
<composite-id>
<key-property name="ParentId" type="int" column="parent_id"/>
<key-property name="Name" column="name" type="string"/>
</composite-id>
<property name="Val" blablabla
[...]
那麼你的問題解決了嗎?我沒有看到任何接受的答案,也沒有任何意見。 – ManuPK
我最終做的是在保存父對象並設置其父引用時,循環遍歷DAO中的所有子項。不是我原本想要做的,但它也可以工作,我猜... – honeyp0t