例子:
@OneToOne(cascade=CascadeType.DETACH,fetch=FetchType.LAZY) @JoinColumn(name="user_id") private User user;
CascadeType.PERSIST
給當前設置的實體操作另一個實體的權限。這個理解可以推廣到每一個CascadeType。
CascadeType.REMOVE
Cascade remove operation,級聯刪除操作。
刪除當前實體時,與它有映射關系的實體也會跟着被刪除。
CascadeType.MERGE
Cascade merge operation,級聯更新(合並)操作。
當User中的數據改變,會相應地更新Course中的數據。
CascadeType.DETACH
Cascade detach operation,級聯脫管/游離操作。
如果你要刪除一個實體,但是它有外鍵無法刪除,你就需要這個級聯權限了。它會撤銷所有相關的外鍵關聯。
CascadeType.REFRESH
Cascade refresh operation,級聯刷新操作。
假設場景 有一個訂單,訂單里面關聯了許多商品,這個訂單可以被很多人操作,那么這個時候A對此訂單和關聯的商品進行了修改,與此同時,B也進行了相同的操作,但是B先一步比A保存了數據,那么當A保存數據的時候,就需要先刷新訂單信息及關聯的商品信息后,再將訂單及商品保存。
CascadeType.ALL
Cascade all operations,擁有以上所有級聯操作權限。
@joinTable
https://www.jianshu.com/p/d8f1377ca773
