Hibernate 一对一对多多对多注解cascade属性的总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.
|
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
以上是关于Hibernate 一对一对多多对多注解cascade属性的总结的主要内容,如果未能解决你的问题,请参考以下文章