Hibernate三种状态
来源:互联网 发布:可靠的网络兼职 编辑:程序博客网 时间:2024/05/16 10:32
hibernate的三种状态,瞬时态,持久态,托管态
new或delete出来的为瞬时态,将对象放入到session中管理变为持久态,持久态更新时不用写update语句,托管态,
数据库中有但是session已经关闭可以通过update或saveorupdate变为持久态。主要看session有没有关闭。
get方式获取对象不支持lazy,查找数据库如果没有 返回Null
load方式获取对象支持lazy,查找数据库如果没有报notfindobjectexception异常
hibernate判断数据库中是否有对象对应的记录也是采用判断id的方式。
例如:数据库中表user中有一条 记录,该记录的id为uuid,名称ls
那么我们可以自己构造一个托管对象
User user= new User();
User.setId(uuid);
User.setName("zhangs");
Session.update(user);
这样hibernate会发出一条sql语句用于更新该记录:update user set username=zhangs whereid=uuid;
hibernate的增删改查操作采用的是快照比较的 方式,操作的时候会复制一个没有操作的内存快照,
这样当操作后与快照进行比较看执行那种操作。
在事务没有提交时,session的添加更新操作全是在内存中,只有真正提交了才会发sql语句。uuid是hiberante维护的id,一级缓存的概念
复杂查询还是要用Query对象
- Hibernate三种状态
- Hibernate三种状态
- Hibernate 三种状态
- hibernate三种状态
- Hibernate三种状态
- hibernate三种状态
- Hibernate三种状态
- Hibernate三种状态
- hibernate 三种状态
- hibernate 三种状态
- hibernate三种状态
- Hibernate三种状态
- Hibernate三种状态
- hibernate三种状态
- hibernate三种状态
- Hibernate三种状态
- hibernate 三种状态
- hibernate三种状态
- IE浏览器和火狐浏览器兼容问题——CSS篇
- checkstyle配置文件中英文对照
- 黑马程序员_第二天_File对象功能之举例
- SET SERVEROUTPUT
- 基于Linux的v4l2视频架构驱动编写(一)
- Hibernate三种状态
- 基于Linux的v4l2视频架构驱动编写(二)
- 自定义菱形打印
- 基于Linux的v4l2视频架构驱动编写(三)
- uitableviewcell 的长按事件
- Java从控制台读入数据的几种方法
- 关于arguments对象
- 关于邮箱的自动回复
- Hibernate中复合主键的配置