springboot實體類的級聯說明


例子:

@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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM