您可以通過使用OneToOne-Annotation的Cascade屬性來實現此行爲。所以用Hibernate註解/ JPA批註你幾乎碰到這樣的:在
@Entity
public class AClass{
@Id
@GeneratedValue
private long id;
@OneToOne(cascade={Cascade.ALL, Cascade.DELETE_ORPHANS})
private BClass b_1;
@OneToOne(cascade={Cascade.ALL, Cascade.DELETE_ORPHANS})
private BClass b_2;
}
@Entity
public class BClass{
private String someField;
}
一個XML映射的關聯應該是這個樣子:
<hibernate-mapping>
<class name="AClass">
<one-to-one cascade="all,delete-orphans" name="b_1" class="BClass" />
<one-to-one cascade="all,delete-orphans" name="b_2" class="BClass" />
</class>
</hibernate-mapping>
這應該給你在級聯持久化操作的通緝行爲到BClasses上並從持久層中刪除任何未引用的BClass對象。
玩得開心!
Frank
感謝,但我一直在尋找基於XML映射... – gotch4 2010-02-10 15:11:49
而且你確信它是安全使用一對A對於A來說不是一對多嗎? – gotch4 2010-02-10 15:21:22
以及依賴於數據模型,如果你有一個且只有一個引用從一個AClass到一個BClass的工作,即使有兩個字段在AClass中持有BClasses。他們只是不應該引用相同的實例 – fasseg 2010-02-10 20:19:42