持久态对象一个非常重要的能力:自动更新数据库。

package cn.itcast.hibernate3.demo1;import static org.junit.Assert.*;import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;import cn.itcast.utils.HibernateUtils;/*** Hibernate的测试类* * @author zhongzh**/public class HIbernateTest1 {@Test//测试持久态的对象自动更新数据库(因为它依赖了hibernate的一级缓存区域)public void demo2() {//1.创建SessionSession session = HibernateUtils.openSession();//2.开启事务Transaction tx = session.beginTransaction();//获得一个持久态的对象Book book = (Book) session.get(Book.class, 1);book.setName("Struts2开发");//现在不用update(book)也可以自动完成数据库的更新//没有手动调用update()方法也可以完成数据库的更新//session.update(book);//之前是update(book)才能完成修改//3.提交事务
      tx.commit();//4.关闭资源
      session.close();}@Test//区分持久化对象的三种状态:public void demo1() {//  1.创建SessionSession session = HibernateUtils.openSession();//  2.开启事务Transaction tx = session.beginTransaction();//往数据库去保存一本图书:Book book = new Book();//book是一个持久化对象,因为book有一个实体类已经//和我们的表建立起映射了 Book是一个持久化类  一new()就是瞬时态了  //瞬时态: 没有唯一标识OID,没有与session关联.//刚new()出来,从数据库里面也不知道它是什么。它根本就没有OID,没有和session关联,是一个单独的//对象book.setName("Hibernate开发");book.setAuthor("孙XX");book.setPrice(65d);session.save(book);  //持久态  往数据库一存它就有OID了,而且是和session关联。//持久态: 有唯一标识OID,与session关联.//  3.事务提交
        tx.commit();//4.释放资源
        session.close();book.setName("Struts2开发");  //脱管态  session关闭了,book不与session关联了。//脱管态:有唯一的标识,没有与session关联.fail("Not yet implemented");}}
//******自动更新数据库的能力依赖了Hibernate的一级缓存.

转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/6673279.html

day35-hibernate映射 03-Hibernate持久态对象自动更新数据库相关推荐

  1. Hibernate的游离态与持久态转换(转)

    本文转自:http://blog.csdn.net/sdbany/article/details/2257591 在Hibernate中,一个PO可能经过长时间的操作,session已过时关闭,此时P ...

  2. Hibernate的游离态与持久态转换

    在Hibernate中,一个PO可能经过长时间的操作,session已过时关闭,此时PO已经是一个游离态的对象,这时要转换为持久战态,有下面几种方法: 1.session.saveOrUpdate(o ...

  3. 在 SCA Module 中使用 Hibernate 框架实现数据持久层

    一.背景 SCA(Service Component Architecture)作为服务组件体系结构,将所有的集成构件都描述为具有定义明确的接口的服务组件.SCA 还引入了模块的概念,它将服务组件集中 ...

  4. 对象的 游离态 持久态 临时态

    User u1=new User(); u1.setName("11"); //以上临时态 orm.save(u1); //这一步变持久态,内存和数据库同步 mybits的inse ...

  5. jpa 持久态,游离态,瞬态

    jpa Hibernate分为三种基本的状态: 游离态: 处于持久态的实体对象,当他不再与Session对象关联时,这个对象就变成了游离态..游离态对象的特征有: 游离态对象一定是由持久态对象转换而来 ...

  6. Hibername三种状态(瞬时态 持久态 游离态)

    Hibernate 三种状态,tansient瞬时态.persistent持久态.detached游离态 Hibernate三种状态之一:临时状态 (Transient): 用new创建的对象,它没有 ...

  7. hibernate中持久化对象的生命周期(三态:自由态,持久态,游离态 之间的转换)

    三态的基本概念: 1,  临时状态(Transient):也叫自由态,只存在于内存中,而在数据库中没有相应数据.用new创建的对象,它没有持久化,没有处于Session中,处于此状态的对象叫临时对象: ...

  8. hibernate中持久化对象的生命周期(三态:自由态,持久态,游离态 之间的转换)...

    三态的基本概念: 1,  暂时状态(Transient):也叫自由态,仅仅存在于内存中,而在数据库中没有对应数据.用new创建的对象,它没有持久化,没有处于Session中,处于此状态的对象叫暂时对象 ...

  9. hibernate中对象的3种状态----瞬时态、持久态、脱管态

    转载: http://www.blogjava.net/amigoxie/archive/2007/02/11/99342.html Hibernate的对象有3种状态,分别为:瞬时态(Transie ...

最新文章

  1. 抽象方法可以有方法体_抽象类和模板方法设计模式
  2. java判断某个字符串是否是数字
  3. Vue之前端页面使用json编辑框
  4. html css简单form表单源码
  5. 建议 | 在中国不是程序猿,不建议你用序列化!
  6. Behavior Language Processing with Graph based Feature Generation for Fraud DetectioninOnline Lending
  7. 通过原生JS实现为元素添加事件的方法
  8. JZOJ 4230. 淬炼神体
  9. python实现图像二分类特异度(numpy)
  10. PHP制作面包屑,thinkPHP制作面包屑方法
  11. ubuntu20.04中安装划词翻译_Chrome翻译插件【沙拉查词】amp;【彩云小译】
  12. linux dot命令,linux dot 安装
  13. 2023年云南中烟名单
  14. 数学建模学习(7):分支结构与循环结构详解
  15. 肖仰华谈知识图谱:知识将比数据更重要,得知识者得天下
  16. 360浏览器强制使用极速模式
  17. 枚举----暴力枚举
  18. Win11安装Ubuntu子系统报错WslRegisterDistribution failed with error: 0x800701bc
  19. 大小限制_只需一步!突破微信传输大小限制,轻松分享视频文件!
  20. 计算机不能通讯,S7-200与电脑不能通讯问题

热门文章

  1. 如何用栈实现浏览器的前进和后退?
  2. 在职研究生和全日制研究生的区别_“在职研究生”与“全日制研究生”有什么区别?...
  3. Hibernate中inverse属性与cascade属性
  4. 2016/1/4 学习笔记 数据类型转换 注释 语句
  5. 数学入门题——《算法竞赛入门经典-训练指南》
  6. hdu 3079水题
  7. HDOJ1879(继续畅通工程)
  8. android UI进阶之实现listview的分页加载
  9. hapi和typescript构建项目(正在更新中)
  10. Java 的Tuple(类似.net等的元组)