博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate 一对一、一对多、多对多注解cascade属性的总结
阅读量:6067 次
发布时间:2019-06-20

本文共 1243 字,大约阅读时间需要 4 分钟。

作用:是否级联被注解字段里面的对象。可选值: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.可选值:

Includes all types listed here.
Corresponds to the Hibernate native DELETE action.
Deprecated. 
use @OneToOne(orphanRemoval=true) or @OneToMany(orphanRemoval=true)
Corresponds to  .
Deprecated. 
use 
Corresponds to the Hibernate native LOCK action.
Corresponds to  .
Corresponds to  .
Corresponds to  .
Corresponds to  .
Corresponds to the Hibernate native REPLICATE action.
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的方法,参考另一边博客:

 

转载于:https://www.cnblogs.com/fuzhihong0917/p/6658748.html

你可能感兴趣的文章
互联网广告学——程序化购买
查看>>
新版本chrome浏览器控制台怎么设置成独立的窗口
查看>>
oracle中nvarchar2字符集不匹配
查看>>
Mysql5.6.22源代码安装
查看>>
每天一个linux命令(5):rm 命令
查看>>
mksquash_lzma-3.2 编译问题
查看>>
【转帖】C# DllImport 系统调用使用详解 托管代码的介绍 EntryPoint的使用
查看>>
PHP JAVA Bridge桥的最新使用
查看>>
免费工具
查看>>
锋利的JQuery —— DOM操作
查看>>
Swift应用开源项目推荐
查看>>
BZOJ1845 : [Cqoi2005] 三角形面积并
查看>>
机器语言——码运算(具体解释反码补码由来)
查看>>
二维码的生成细节和原理
查看>>
关于B树的一些总结
查看>>
学习资料下载地址
查看>>
exit()和_exit()和return
查看>>
apache开源项目-- NiFi
查看>>
java 导出excel
查看>>
lintcode:next permutation下一个排列
查看>>