Hibernate对象的状态
来源:互联网 发布:ar应用是什么软件 编辑:程序博客网 时间:2024/05/03 08:42
不同的书上有不同的状态叫法,我就按照好记的习惯来说一下,一共三种状态,第一是临时状态对象,第二种托管状态(持久化状态),第三种脱管状态。
session.save()
当执行此方法的时候,Hibernate并没有生成sql语句对数据库进行操作,只是把数据从内存中的函数区域转到了Hibernate的内存区域,这是在内存中的操作,不涉及外存数据库操作,只有当执行transaction.commmit()方法的时候才会对数据可操作。同时,session.save()方法视主键生成机制影响。
session.open()是打开数据库的连接。session.close()只是断开hibernate和数据库的连接。
session.update()方法可以将一个对象的状态变成持久化状态。
当执行session.get()方法的时候
快照机制:Hibernate第一次把一个对象转换为持久化对象的时候。克隆一个快照给控制台,在提交的时候会对照快照看一下有没有发生变化,如果发生变化才执行update语句。
当一个对象是一个持久化对象的时候,当进行提交的时候,hibernate内部会让该对象和快照进行对比,如果一样,则不发出update语句,如果不一样,则发出update语句,可谓hibernate经典之作。
增删改必须要开启事物transaction
session.clear()把session中所有的对象清空。
session.update把对象从脱管状态转换成持久化状态。
session.evict()把一个对象从session中清空,有参数。
一个对象是否是持久化是针对某一个session而言的。
当执行transaction.commit的时候,hibernate内部会检查session
1,如果一个对象为临时状态对象,则session不会管。
2,如果一个对象是持久化状态对象,如果有ID值,并且和数据库对应,那么先把该对象与快照进行对比,如果一致,则什么都不做,如果不一致,则执行update语句。
3,如果一个对象是持久化状态对象,如果没有ID值,则会发出save语句。
一个session对应一个事物
- hibernate的对象状态
- Hibernate对象的状态
- Hibernate的对象状态
- Hibernate对象的状态:
- Hibernate对象的状态
- Hibernate 的对象状态
- Hibernate:对象的状态
- Hibernate对象的状态
- Hibernate 的对象状态
- 【Hibernate】对象的状态
- hibernate的对象状态
- Hibernate 对象状态的理解
- Hibernate中对象的状态
- Hibernate的对象状态是什么?
- hibernate中对象的状态
- Hibernate中对象的状态
- 【Hibernate二】对象的状态
- Hibernate之对象的状态
- Java Swing版单机版三国杀
- android 美女拼图小游戏
- hql语句,封装后的hql语句在分开查询or语句要加上括号
- 淘气兔图片识别SDK发布,目前支持易语言,c++
- AppCompat与ActionBar的区别
- Hibernate对象的状态
- 将需要书写的内容,以追加的方式写到文件中
- VirtualBox中配置CentOS的本地磁盘镜像作为其软件源
- 设计模式之-----原型模式
- Java计算两个时间的时间差
- MountService整理
- Objective-C学习笔记(八)——高级跳转语句goto使用方法
- 个人总结
- VC 2010 + MFC : 在对话框里面加入工具条CMFCToolBar