2012-02-02 152 views
3

我有2個類:Entry和Content。一對一刪除級聯

public class Entry implements Serializable { 
    @OneToOne(cascade=CascadeType.ALL) 
    private Content content; 
} 

和內容有自己的價值觀(名字等等等)...我想要做的是,如果一個內容的刪除,我想刪除的任何條目浩與相關...

這它不是tipical孤兒問題(我不是刪除條目!進出口刪除內容)

項可以具有或不相關的內容......和existenc是entrys的independient內容...

我怎麼能說休眠「嘿...如果你要刪除一個內容找到任何相關的FK並刪除它!「

回答

0

進行關聯雙向的,級聯去除:

public class Content { 
    ... 
    @OneToOne(mappedBy = "content", cascade = CascadeType.REMOVE) 
    private Entry entry; 

} 
+0

我正在和一位同事談論這件事,他也這麼說!它不是一個壞主意,但如果我這樣做,我必須創建一個FK在我的內容表ponting一個入口?我認爲這不正確(或maby它是但即時看到它錯了)但我不想在我的表中添加FK(它感覺不對)!如果我不需要在我的內容表中添加FK,並且這會「神奇地」工作,那麼......上帝保佑你! – BrunoX 2012-02-02 18:26:44

+0

'mappedBy =「content」'意味着:該關聯由關聯的另一側進行映射,使用條目表中的外鍵。你不需要任何額外的外鍵。閱讀hibernate參考手冊,因爲您必須理解使用Hibernate時協會的工作方式。 – 2012-02-02 18:38:31

1

爲什麼不建立從內容到輸入如下鏈接:

public class Content implements Seralizable { 
    @OneToOne(cascade=CascadeType.REMOVE, optional=true) 
    private Entry entry; 
} 

請注意可選屬性。這表示內容可能沒有與您在文章中所說的相關的條目。

+0

我正在和一位同事談論這件事,他也這麼說!它不是一個壞主意,但如果我這樣做,我必須創建一個FK在我的內容表ponting一個入口?我認爲這不正確(或maby它是但即時看到它錯了)但我不想在我的表中添加FK(它感覺不對)!如果我不需要在我的內容表中添加FK,並且這會「神奇地」工作,那麼......上帝保佑你! – BrunoX 2012-02-02 18:25:52