一、 Hibernate的持久化类状态:

1.1Hibernate的持久化类状态

持久化类:就是一个实体类 与 数据库表建立了映射.

Hibernate为了方便管理持久化类,将持久化类分成了三种状态.

瞬时态 transient:(临时态)

持久态 persistent:

脱管态 detached:(离线态)

1.2三种持久化对象的状态:

Transient瞬时态:

特点:持久化对象没有唯一标识OID.没有纳入Session的管理.

Persistent持久态:

特点:持久化对象有唯一标识OID.已经纳入到Session的管理.

结论:持久化持久态对象有自动更新数据库的能力.

Detached脱管态:

特点:持久化对象有唯一标识OID,没有纳入到Session管理.

1.3区分三种持久化对象的状态:

@Test// 区分持久化对象的三种状态:public void demo1(){// 1.创建SessionSession session = HibernateUtils.openSession();// 2.开启事务Transaction tx = session.beginTransaction();// 向数据库中保存一本图书:Book book = new Book();// 瞬时态:没有唯一标识OID,没有与session关联.book.setName("Hiernate开发");book.setAuthor("XX");book.setPrice(65d);session.save(book); // 持久态:有唯一标识OID,与session关联.// 3.事务提交tx.commit();// 4.释放资源session.close();book.setName("Struts2开发"); // 脱管态:有唯一的标识,没有与session关联.}

1.4三种状态对象转换:

1.4.1、瞬时态:

获得:

Book book = new Book();

瞬时--->持久

* save(book);

* save()/saveOrUpdate();

瞬时--->脱管

* book.setId(1);

1.4.2、持久态:

获得:

Book book = (Book)session.get(Book.class,1);

* get()/load()/find()/iterate();

持久--->瞬时:

* delete(book);

* 特殊状态:删除态.(被删除的对象,不建议去使用.)

持久--->脱管:

* session.close();

* close()/clear()/evict();

1.4.3、脱管态:

获得:

Book book = new Book();

book.setId(1);

脱管--->持久:

* session.update();

* update()/saveOrUpdate()/lock()

脱管--->瞬时:

* book.setId(null);

1.5持久态对象有自动更新数据库的能力;

@Test// 测试持久态的对象自动更新数据库public void demo2(){// 1.创建SessionSession session = HibernateUtils.openSession();// 2.开启事务Transaction tx = session.beginTransaction();// 获得一个持久态的对象.Book book = (Book) session.get(Book.class, 1);book.setName("Struts2开发");// session.update(book);// 3.提交事务tx.commit();// 4.关闭资源session.close();}

hibernate教程--持久化类状态相关推荐

  1. hibernate教程--持久化类状态详解

    一. Hibernate的持久化类状态: 1.1 Hibernate的持久化类状态 持久化类:就是一个实体类 与 数据库表建立了映射. Hibernate为了方便管理持久化类,将持久化类分成了三种状态 ...

  2. (转) Hibernate持久化类与主键生成策略

    http://blog.csdn.net/yerenyuan_pku/article/details/65462930 Hibernate持久化类 什么是持久化类呢?在Hibernate中持久化类的英 ...

  3. Hibernate的持久化

    计应134  徐雪双 1.持久化类 持久化类是指被需要被Hibernate持久化类到数据库中的实例所对应的类.Hibernate中操作的持久化类对象都是普通的Java类对象,与普通的JavaBean没 ...

  4. Hibernate——(3)主键生成策略持久化类的三种状态

    一 持久化类 1.持久化:内存对象--->数据库(硬盘)Hibernate持久化的框架 持久化类:Java对象与数据库中的表建立映射关系            Hibernate就称为持久化类( ...

  5. Hibernate框架(持久化类、缓存、事务管理)

    持久化类 java类与数据库的表建立了映射关系,该类被称为持久化类 1).编写规则 ①无参构造,使得Hibernate可通过反射建立对象 ②私有属性,get/set方法 ③持久化类提供一个唯一标识OI ...

  6. Hibernate学习(二)持久化类,主键生成策略、一级缓存、事务

    持久化类: 持久化:将内存中的一个对象持久化到数据库中的过程.hibernate是持久层的ORM框架 持久化类:java中的一个对象和数据库表建立了映射关系,就可以称为持久化类,java类+映射文件. ...

  7. Hibernate持久化类与主键生成策略

    Hibernate持久化类 什么是持久化类? Persistent Object (PO) PO=POJO+hbm映射配置 对于hibernate中的PO编写规则: 1. 必须提供一个无参数的publ ...

  8. Hibernate→HQL、query.list()返回数据类型、查询相关语句、分页、原生SQL、@注解、持久化对象状态及生命周期、一多关系、继承映射关系、逆向工程

    HQL Query实例与表 session通用工具类 Query对象 from 类→List<类>接收 映射类 仅查询商品 查询商品及所在商家 别名 返回数据类型定义 Iterator接收 ...

  9. Hibernate持久化对象状态

    在Hibernate中,持久化对象再被操作过程中分为三个时期.这三个时期和session周期相关. 各自是瞬时(Transient),持久太(persistent)和游离态(Detached) 瞬时状 ...

最新文章

  1. php中jwt权限认证,php 后端实现JWT认证方法示例
  2. 关于vector的resize()的理解
  3. 欧盟出台首个网络与信息安全指导性法律
  4. shell的date
  5. [LeetCode]题解(python):025-Reverse Nodes in k-Group
  6. window系统下如何查看so库的信息
  7. 小贝拉机器人是朋友_报废机器人应该属于什么垃圾?《宝莱坞机器人2.0》给你答案...
  8. 吴恩达机器学习 12.异常检测
  9. CCNA学习笔记12-NAT
  10. c 语言打印沙漏图形,PAT乙级 1027打印沙漏 [图形输出]
  11. 微信开发-UnionID机制相关文档
  12. Seasonal-ARIMA模型
  13. 线性代数————思维导图(上岸必备)(行列式部分)
  14. 1.3.1 互联网的边缘部分(资源子网)
  15. 进程的基本概念及操作
  16. EasyNVR网页/微信播放RTSP摄像机HLS/RTMP播放时出现起播等待问题的优化过程
  17. eggs和egg是什么意思_eggs是什么意思_eggs的翻译_音标_读音_用法_例句_爱词霸在线词典...
  18. php网站 域名授权 怎么破,使用php进行域名授权代码 - 小俊学习网
  19. linux网络连接问题(ping不通)
  20. android file mkdir,警告:File.mkdir()被忽略

热门文章

  1. Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting
  2. 虚拟机链接ftp服务器,linux虚拟机连接ftp服务器
  3. Keras:保存模型并载入模型继续训练
  4. Hyperledger Fabric VS Ethereum
  5. 《研磨设计模式》chap10 中介者模式Mediator(2)应用举例
  6. 以太坊知识教程------智能合约(2)调用
  7. java元婴期(18)----java进阶(spring(2)----DI(依赖注入)基于注解的IOC与DI配置properties)
  8. [JAVA基础] 了解构造器Constructor———你真的会用构造器吗?
  9. X86汇编——简易通讯录
  10. 用_beginthreadex不用 CreateThread