當前位置:
首頁 >
Hibernate 一对一、一对多、多对多注解cascade属性的总结
發(fā)布時間:2025/7/14
52
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Hibernate 一对一、一对多、多对多注解cascade属性的总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
作用:是否級聯(lián)被注解字段里面的對象??蛇x值:javax.persistence.CascadeType.PERSIST, MERGE, REMOVE, REFRESH, DETACH, ALL??蛇x其中的一個或多個,選一個時,花括號可用可不用。
?
| PERSIST | 級聯(lián)session的persist操作。假設Student類和teachers字段的@ManyToMany注解上配置有cascade = {CascadeType.PERSIST},那么,當stu1對象set了一個teachers集合(這個集合里面的對象都是瞬態(tài)的),持久化這個stu1d對象時,這個集合里面的所有瞬態(tài)對象都會被級聯(lián)持久化到數(shù)據(jù)庫。 |
| MERGE | 級聯(lián)merge操作。道理同上。 |
| REMOVE | 級聯(lián)remove操作。道理同上。 |
| REFRESH | 級聯(lián)refresh操作。道理同上。 |
| DETACH | 級聯(lián)evict操作。道理同上。 |
| ALL | 級聯(lián)以上所有操作。 |
?
或者:使用Hibernate自身的CascadeType.可選值:
| ALL Includes all types listed here. |
| DELETE Corresponds to the Hibernate native DELETE action. |
| DELETE_ORPHAN Deprecated.? use @OneToOne(orphanRemoval=true) or @OneToMany(orphanRemoval=true) |
| DETACH Corresponds to?CascadeType.DETACH. |
| EVICT Deprecated.? use?CascadeType.DETACH |
| LOCK Corresponds to the Hibernate native LOCK action. |
| MERGE Corresponds to?CascadeType.MERGE. |
| PERSIST Corresponds to?CascadeType.PERSIST. |
| REFRESH Corresponds to?CascadeType.REFRESH. |
| REMOVE Corresponds to?CascadeType.REMOVE. |
| REPLICATE Corresponds to the Hibernate native REPLICATE action. |
| SAVE_UPDATE Corresponds to the Hibernate native SAVE_UPDATE (direct reattachment) action. |
可見,除REPLICATE和SAVE_UPDATE是JPA.CascadeType里面沒有的,其他的都一樣。其中,DELETE對應JPA.CascadeType的REMOVE,DELETE_ORPHAN是不贊成的,DETACH和EVICT對應JPA.CascadeType的DETACH,作用是org.hibernate.Session的evict方法的作用。
REPLICATE:
SAVE_UPDATE:
?
JPA.CascadeType的所有枚舉值,都對應了org.hibernate.Session的方法(DETACH對應evict)。關于Session的方法,參考另一邊博客:http://www.cnblogs.com/565261641-fzh/p/6658747.html
?
轉載于:https://www.cnblogs.com/fuzhihong0917/p/6658748.html
總結
以上是生活随笔為你收集整理的Hibernate 一对一、一对多、多对多注解cascade属性的总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: userdel、usermod、newg
- 下一篇: Oracle等待事件之Latch Fre