hibernate教程--持久化类状态
一、 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教程--持久化类状态相关推荐
- hibernate教程--持久化类状态详解
一. Hibernate的持久化类状态: 1.1 Hibernate的持久化类状态 持久化类:就是一个实体类 与 数据库表建立了映射. Hibernate为了方便管理持久化类,将持久化类分成了三种状态 ...
- (转) Hibernate持久化类与主键生成策略
http://blog.csdn.net/yerenyuan_pku/article/details/65462930 Hibernate持久化类 什么是持久化类呢?在Hibernate中持久化类的英 ...
- Hibernate的持久化
计应134 徐雪双 1.持久化类 持久化类是指被需要被Hibernate持久化类到数据库中的实例所对应的类.Hibernate中操作的持久化类对象都是普通的Java类对象,与普通的JavaBean没 ...
- Hibernate——(3)主键生成策略持久化类的三种状态
一 持久化类 1.持久化:内存对象--->数据库(硬盘)Hibernate持久化的框架 持久化类:Java对象与数据库中的表建立映射关系 Hibernate就称为持久化类( ...
- Hibernate框架(持久化类、缓存、事务管理)
持久化类 java类与数据库的表建立了映射关系,该类被称为持久化类 1).编写规则 ①无参构造,使得Hibernate可通过反射建立对象 ②私有属性,get/set方法 ③持久化类提供一个唯一标识OI ...
- Hibernate学习(二)持久化类,主键生成策略、一级缓存、事务
持久化类: 持久化:将内存中的一个对象持久化到数据库中的过程.hibernate是持久层的ORM框架 持久化类:java中的一个对象和数据库表建立了映射关系,就可以称为持久化类,java类+映射文件. ...
- Hibernate持久化类与主键生成策略
Hibernate持久化类 什么是持久化类? Persistent Object (PO) PO=POJO+hbm映射配置 对于hibernate中的PO编写规则: 1. 必须提供一个无参数的publ ...
- Hibernate→HQL、query.list()返回数据类型、查询相关语句、分页、原生SQL、@注解、持久化对象状态及生命周期、一多关系、继承映射关系、逆向工程
HQL Query实例与表 session通用工具类 Query对象 from 类→List<类>接收 映射类 仅查询商品 查询商品及所在商家 别名 返回数据类型定义 Iterator接收 ...
- Hibernate持久化对象状态
在Hibernate中,持久化对象再被操作过程中分为三个时期.这三个时期和session周期相关. 各自是瞬时(Transient),持久太(persistent)和游离态(Detached) 瞬时状 ...
最新文章
- php中jwt权限认证,php 后端实现JWT认证方法示例
- 关于vector的resize()的理解
- 欧盟出台首个网络与信息安全指导性法律
- shell的date
- [LeetCode]题解(python):025-Reverse Nodes in k-Group
- window系统下如何查看so库的信息
- 小贝拉机器人是朋友_报废机器人应该属于什么垃圾?《宝莱坞机器人2.0》给你答案...
- 吴恩达机器学习 12.异常检测
- CCNA学习笔记12-NAT
- c 语言打印沙漏图形,PAT乙级 1027打印沙漏 [图形输出]
- 微信开发-UnionID机制相关文档
- Seasonal-ARIMA模型
- 线性代数————思维导图(上岸必备)(行列式部分)
- 1.3.1 互联网的边缘部分(资源子网)
- 进程的基本概念及操作
- EasyNVR网页/微信播放RTSP摄像机HLS/RTMP播放时出现起播等待问题的优化过程
- eggs和egg是什么意思_eggs是什么意思_eggs的翻译_音标_读音_用法_例句_爱词霸在线词典...
- php网站 域名授权 怎么破,使用php进行域名授权代码 - 小俊学习网
- linux网络连接问题(ping不通)
- android file mkdir,警告:File.mkdir()被忽略
热门文章
- Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting
- 虚拟机链接ftp服务器,linux虚拟机连接ftp服务器
- Keras:保存模型并载入模型继续训练
- Hyperledger Fabric VS Ethereum
- 《研磨设计模式》chap10 中介者模式Mediator(2)应用举例
- 以太坊知识教程------智能合约(2)调用
- java元婴期(18)----java进阶(spring(2)----DI(依赖注入)基于注解的IOC与DI配置properties)
- [JAVA基础] 了解构造器Constructor———你真的会用构造器吗?
- X86汇编——简易通讯录
- 用_beginthreadex不用 CreateThread