`
lanhuidong
  • 浏览: 224602 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hibernate——关于save和persist

阅读更多

 

@Test
    public void testSave(){
        DomesticCat cat = new DomesticCat();
        cat.setId(101);
        cat.setName("Hello kitty");
        cat.setSex('M');
        cat.setBirthday(new Date());
        Transaction tx = session.beginTransaction();
        session.save(cat);
        System.out.println(cat.getId());
        tx.commit();
    }
    
    @Test
    public void testPersist(){
        DomesticCat cat = new DomesticCat();
        cat.setId(100);
        cat.setName("Jscis");
        cat.setSex('F');
        cat.setBirthday(new Date());
        Transaction tx = session.beginTransaction();
        session.persist(cat);
        System.out.println(cat.getId());
        tx.commit();
    }

1. 如上的测试代码,其实id是数据库自动生成的,使用save方法保存时,id并不是程序中设置的值,而是数据库自动生成的。而persist方法则认为要保存的是Detached状态的对象,会抛出异常PersistentObjectException

 

2.save方法保证马上返回标识符,而persist方法并不保证,但是在测试中persist好像也是马上返回标识符的,可能是我不知道如何测试,还望高手指教

 

3.当代码中去掉Transaction tx = session.beginTransaction();和tx.commit();时,persist不会执行insert语句,而save会执行。

分享到:
评论

相关推荐

    Hibernate save persist merge探究

    NULL 博文链接:https://dreamzhong.iteye.com/blog/1218885

    java Hibernate save()与persist()区别

    本文章来给各位同学介绍一下Hibernate save()与persist()区别,希望此文章能对各位同学对于Hibernate save()与persist()有所理解

    Guice2.0+Hibernate3.2+warp-persist-2.0+Struts2+JPA

    轻量级的Guice2.0代替了Spring,速度更快,项目体积更小,Hibernate3.2与JPA的结合使用代替了传统的配置文件,使Hibernate的开发更简单,本项目基本上是零配置开发,由于我只能上传小于15M的文件,故JAR被我删除了,...

    Hibernate:有了 save,为什么还需要 persist?.docx

    万物皆自然,每个 API 的设计,无论是否正确,都有其意图。因此,在学习某些框架的时候,我们需要经常思考:这个 API 的设计意图是啥?...本文来探讨一下 Session 中 persist 的设计意图。。。。。。。。。。。。。。。

    Hibernate级联操作一对多demo

    Hibernate级联操作一对多demo Hibernate级联操作一对多demo Hibernate级联操作一对多demo

    hibernate多对一关联关系

    后面的hibernate代码,我会慢慢的上传上去,这些资源都是免费的,希望可以帮到大家。

    save, saveOrUpdate, persist, merge, update 区别.docx

    hibernate save()方法能够保存实体到数据库,正如方法名称save这个单词所表明的意思。我们能够在事务之外调用这个方法,这也是我不喜欢使用这个方法保存数据的原因。 假如两个实体之间有关系(例如employee表和...

    一加8传感器分区文件persist.img+修复步骤

    一加8传感器分区文件persist.img+修复步骤 如果你刷机 更新 降级或者刷写第三方系统或者修改系统文件后有以下问题, 应该就是传感器分区出问题了 以下问题包括 但不限于全部 1-----相机 打不开或者反应慢或者其他...

    warp-persist-2.0-20090214.zip

    warp-persist框架:封装Hibernate和JPA,提供事务管理和持久化资源管理 warp-dynamic-finder:提供了基于Annotation的动态查询功能,让数据库查询变得异常简单,不再需要DAO层 warp-mvc:借鉴了Tapestry5,提供了...

    小米平板4 persist分区恢复固件

    小米平板4 persist分区恢复固件

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     8.4.1 Session的save()和persist()方法  8.4.2 Session的load()和get()方法  8.4.3 Session的update()方法  8.4.4 Session的saveOrUpdate()方法  8.4.5 Session的merge()方法  8.4.6 Session的delete()方法 ...

    hibernate的_CascadeType属性说明

    CascadeType是hibernate中的枚举类型,定义了多种级联操作,包括REFRESH、PERSIST、REMOVE、MERGE、ALL等。 CascadeType.REFRESH: 级联刷新是指当多个用户同时操作一个实体时,为了确保用户获取的数据是实时的。...

    Hibernate注解

    * @Table —— 注解声明了该实体bean映射指定的表(table),目录(catalog)和schema的名字 * @Column —— 注解声明了属性到列的映射。该注解有如下的属性 * name 可选,列名(默认值是属性名) * unique 可选,...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    8.4.1 Session的save()和persist()方法 191 8.4.2 Session的load()和get()方法 194 8.4.3 Session的update()方法 195 8.4.4 Session的saveOrUpdate()方法 197 8.4.5 Session的merge()方法 198 8.4.6 Session的...

    Persist.NET开源框架

    Persist.NET是C#编写的一款完整的持久层框架

    传智播客李勇hibernate源码1-20课

    04_Session接口及get|load|persist方法 05_实体对象的三种状态与saveOrUpdate方法 06_完善HibernateUtil类及hql查询入门 07_实体类或属性名与数据库关键字冲突问题 10_使用Hibernate完成CRUD实验的步骤说明 11_...

    一加7pro传感器分区文件persist.img+修复步骤

    一加7pro传感器分区文件persist.img+修复步骤 如果你刷机 更新 降级或者刷写第三方系统或者修改系统文件后有以下问题, 应该就是传感器分区出问题了 以下问题包括 但不限于全部 1-----相机 打不开或者反应慢或者...

    小米8传感器分区文件persist.img+修复步骤

    小米8传感器分区文件persist.img+修复步骤 资源说明: 如果你刷机 更新 降级或者刷写第三方系统或者修改系统文件后有以下问题, 应该就是传感器分区出问题了 以下问题包括 但不限于全部 1-----相机 打不开或者反应...

    一加8T传感器分区文件persist.img+修复步骤

    一加8T传感器分区文件persist.img+修复步骤 如果你刷机 更新 降级或者刷写第三方系统或者修改系统文件后有以下问题, 应该就是传感器分区出问题了 以下问题包括 但不限于全部 1-----相机 打不开或者反应慢或者其他...

    一加8T传感器分区修复文件persist

    一加8T传感器分区修复文件persist 传感器失效表现在指纹 指南针 相机 陀螺仪等bug或者完全使用不了等等 一般是更新或者刷机后导致的 资源即可解决这种问题 方法为解锁后fast刷入persist分区 或者twrp里写入镜像方式...

Global site tag (gtag.js) - Google Analytics