2016-09-02 30 views
-1

我經歷春天項目和一些模型類有型什麼是使用級聯= {} CascadeType.TYPE_NAME

級聯= {} CascadeType.ALL

寫的目的爲例如參數:,

@ManyToOne(取= FetchType.EAGER,級聯= CascadeType.ALL) @JoinColumn(名稱= 「USER_ID」,可爲空=假)

私人用戶用戶;

我的問題是我們應該用什麼目的?

Thanky you。

+1

谷歌搜索「休眠級聯」應該爲您提供了一些answsers ... –

回答

2

此屬性表示與類(Outer類)的對象關聯的ALL(因爲CascadeType.ALL)操作將爲類User(Inner class)的關聯對象執行。

例如:

@Entity 
public class Group { 

@ManyToOne(fetch = FetchType.EAGER, cascade=CascadeType.ALL) 
@JoinColumn(name="USER_ID", nullable=false) 
private User user` 

如果你試圖從數據庫中刪除組會引起消除關聯的用戶的。

Enum CascadeType將幫助您指定您想要與關聯用戶執行哪種操作。

如果要指定級聯執行只是爲了消除和堅持,你必須做這樣的事情:

@ManyToOne(cascade = {CascadeType.REMOVE, CascadeType.PERSIST}, fetch = FetchType.EAGER)