当Hibernate配置了(JPA注解)

cascade = { CascadeType.PERSIST, CascadeType.MERGE }

调用保存时

session.save(user);

并不能级联保存,因为save不会触发CascadeType.PERSIST。看save的javadoc:

    /**
* Persist the given transient instance, first assigning a generated identifier. (Or
* using the current value of the identifier property if the <tt>assigned</tt>
* generator is used.) This operation cascades to associated instances if the
* association is mapped with {@code cascade="save-update"}
*
* @param object a transient instance of a persistent class
*
* @return the generated identifier
*/
Serializable save(Object object);

save会触发“save-update”和JPA的CascadeType.ALL,并不会触发CascadeType.PERSIST。JPA没有“save-update”的CascadeType,只能使用Hibernate的CascadeType,如果想保存时触发级联:

1. 可以使用JPA的CascadeType.ALL

2. 使用Hibernate的CascadeType.SAVE_UPDATE

@Cascade(CascadeType.SAVE_UPDATE)

触发其他JPA的CascadeType类型,请参见org.hibernate.session源码(或者javadoc)中各个方法,比如:

    /**
* Make a transient instance persistent. This operation cascades to associated
* instances if the association is mapped with {@code cascade="persist"}
* <p/>
* The semantics of this method are defined by JSR-220.
*
* @param object a transient instance to be made persistent
*/
void persist(Object object);

也就是说该persist方法会触发JPA的CascadeType.PERSIST。

Hibernate支持的CascadeType类型,请见org.hibernate.annotations.CascadeType源码,或者javadoc

CascadeType的更多相关文章

  1. hibernate注解CascadeType

    http://blog.csdn.net/strong8808/article/details/6318994(参考) CascadeType.REFRESH:级联刷新,当多个用户同时作操作一个实体, ...

  2. 【转】Hibernate级联注解CascadeType参数详解

    cascade(级联) 级联在编写触发器时经常用到,触发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新.若对触发器来修改或删除关联表相记录,必须要删除对应的关联表信息,否则,会存有脏数 ...

  3. hibernate---注解--CascadeType属性

    cascade表示级联操作 CascadeType.MERGE级联更新:若items属性修改了那么order对象保存时同时修改items里的对象.对应EntityManager的merge方法 Cas ...

  4. 【criteria CascadeType】级联的不同情况

    使用criteria进行增删改查操作,可能会发生级联删除的情况,例如对员工表进行删除,可能会级联删除掉部门表中的某一条信息[类似这样的情况] 对此,我们可以在实体类中对级联的关系进行管理: 对于cri ...

  5. hibernate 的 CascadeType 属性

    hibernateintegerstringfloatclassmerge @Entity @Table(name="orders")public class Order { // ...

  6. hibernate cascade=CascadeType.All

    因为时间关系,我在这里测试的环境是一对多的关系里面用到的注解方式的级联,网上也有很多贴子,我也看过了,但是呢,我还是自己总结一下吧,这觉得级联是单向的,不是双向的,意思就是说,我们在设置两个类的对象之 ...

  7. hibernate CascadeType属性说明

    CascadeType.PERSIST //只有A类新增时,会级联B对象新增.若B对象在数据库存(跟新)在则抛异常(让B变为持久态) CascadeType.MERGE //指A类新增或者变化,会级联 ...

  8. hibernate-annotation CascadeType.PERSIST不起作用的解决方法

    有如下两个实体类 , Student和Grade 为多对一关系. Student.java @Entity public class Student { private Integer id; pri ...

  9. 再谈Hibernate级联删除——JPA下的Hibernate实现一对多级联删除CascadeType.DELETE_ORPHAN

    声明: 1.本文系原创,非抄袭或转载过来的. 2.本文论点都亲手做过实验论证. 3.本文所讲的Hibernate配置都基于注解的方式,hbm语法未提供. 非常多人对持久层概念搞不清JPA.Hibern ...

  10. 谈论Hibernate级联删除——JPA根据Hibernate实现许多级联删除CascadeType.DELETE_ORPHAN

    声明: 1.这篇文章是原创.非复制或转载过来. 2.在本文中,参数都亲自做过实验证明. 3.这篇文章谈到了Hibernate配置基于注释的方法.hbm语法不可用. 不清JPA.Hibernate.EJ ...

随机推荐

  1. 【转】关于MySQL函数GROUP_CONCAT的使用

    GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,具体可参考MySQL官方文挡:http://dev.mysql.com/doc/refman/5.0/en/ ...

  2. Pos终端中的主密钥、工作密钥、pin密钥、mac密钥

    下面介绍一下加密机中最主要的几种密钥: 1.加密机主密钥(MK) 加密机主密钥(Master Key - MK)是存入在HSM机内的由三个成分合成的一对最上层密钥.在HSM机器以外的地方不会以明文形式 ...

  3. Could not locate executable E:\SoftWave\Hadoop-2.2.0\bin\winutils.exe in the Hadoop binaries解决办法

    需要下载windows版本 bin目录下的文件,替换hadoop目录下原来的bin目录下的文件.下载网址是: https://github.com/srccodes/hadoop-common-2.2 ...

  4. Egret 位图,纹理,添加背景 学习

    1,重新设置舞台大小,可以直接到VS中的 "解决方案"中,找到 launcher->egret_loader.js中,找到setDesignSize方法,修改其中大小即可:有 ...

  5. MAC OS U 盘制作与安装方法

    伴随着 iMac 5K Retina 和新的 Mac mini 等硬件的发布,苹果终于都推出了 OS X Yosemite 系统正式版了!相信很多人都已经用上.不过对于一些不想升级,而是打算「全新安装 ...

  6. release management客户端无法连接到release management server的问题解决

    参考:http://myalmblog.com/2014/03/error-installing-release-management-client/ 装了服务器,装客户端.然后客户端连不上服务器. ...

  7. Linode VPS上架日本东京2号机房,性能速度评测报告(推荐)

    我非常喜欢的海外免备案vps品牌linode日本机房长期缺货,中国用户想买都买不到.不过近日,陆续有国内朋友收到了Linode邀请,Tokyo 2日本东京机房开启内测,很快正式上架销售. 苦等太久的站 ...

  8. Ubuntu 16.04 Django安装和配置

    之前有安装和配置过,换了台电脑,再安装和配置,忽然发现差不多都忘记了,这里记录下已备之后查阅. sudo apt-get install python-pip sudo apt-get install ...

  9. eclipse 配置 Tomcat 遇到的问题以及解决办法

    Eclipse是一个开发JSP的很好的工具,而笔者在配置Tomcat服务器的时候遇到了一些小问题,在这里给大家总结一些经验,希望能帮助同样遇到这些问题的广大同行们能够简单轻松地解决这些问题~ 笔者在以 ...

  10. Sipdroid实现SIP(一): 注册

    目录 注册: 预注册获取长号和用户注册 预注册返回长号 周期性用户注册 Receiver类概述 SipdroidEngine类概述 Sipdroid类中的用户注册: 注册代理和注册事务 注册代理类Re ...