欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Hibernate 一对一、一对多、多对多注解cascade属性的总结

发布时间:2025/7/14 编程问答 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Hibernate 一对一、一对多、多对多注解cascade属性的总结 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

作用:是否级联被注解字段里面的对象。可选值:javax.persistence.CascadeType.PERSIST, MERGE, REMOVE, REFRESH, DETACH, ALL。可选其中的一个或多个,选一个时,花括号可用可不用。

 

PERSIST级联session的persist操作。假设Student类和teachers字段的@ManyToMany注解上配置有cascade = {CascadeType.PERSIST},那么,当stu1对象set了一个teachers集合(这个集合里面的对象都是瞬态的),持久化这个stu1d对象时,这个集合里面的所有瞬态对象都会被级联持久化到数据库。
MERGE级联merge操作。道理同上。
REMOVE级联remove操作。道理同上。
REFRESH级联refresh操作。道理同上。
DETACH级联evict操作。道理同上。
ALL级联以上所有操作。

 

或者:使用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属性的总结的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。