Hibernate的实例的三种状态
来源:互联网 发布:mac装虚拟机 编辑:程序博客网 时间:2024/05/17 08:58
结合课上老师讲的以及查资料看书,把相关知识进行了整理。今天开始用笔记把一些知识点和敲的代码段记下来了,果然还是记一下效果好。推荐有道或是为知等笔记软件,很好用。
如有不足之处,请多多指教。欢迎转载:@CSU-Max
Hibernate的三种状态:
1、瞬时状态
2、持久化状态
3、游离状态
各种状态之间的转换关系:
下面来详细介绍一下各种状态:
瞬时状态:
实例对象通过new关键字开辟内存空间创建Java对象,但是它并没有纳入Hibernate Session的管理。它只是一个携带信息的载体,如果没有变量对它引用,则其将会被JVM回收。
1、处于瞬时状态的对象不在Session的缓存中,不与任何的Session对象相关联。
2、处于瞬时状态的对象在数据库中没有与之相对应的记录。
3、当一个瞬时状态对象被持久化对象引用,它将会自动变为持久化状态对象。
持久化状态:
持久化状态对象存在与数据库中的数据对应,并于Session和Transaction关联,并且相关联的Session没有关闭,Trasaction没有提交。持久化状态对象发生改变时,在Trasaction提交时会影响到数据库。
1、每个持久态对象都于一个Session对象关联
游离状态:
当持久化对象的Session关闭后,这个对象就从持久化对象变为游离态对象。游离态对象仍然存在与数据库数据的关联,只是不在Hibernate的Session管理范围之内。如果将某个处于游离态的对象重新关联某个新的Session,则其将变回持久化对象,如果没有变量对它引用,则其将会被JVM回收。
1、处于游离状态的对象都是由持久化状态对象转化而来。
2、处于游离状态的对象不与任何Session对象关联。
3、处于游离状态的对象在数据库中存在与之相对应的记录(前提是没有其他Session实例删除该条记录)。
简单的代码说明:
public void test(){ User user = new User( "admin" , "admin" ) ; //new创建一个瞬时状态对象 Session session = HibernateUtil. currentSession (); Transaction ts = null ; try { ts = session.beginTransaction(); session.save(user); //调用save操作,变为持久化对象 ts.commit(); } catch (Exception e){ ts.rollback(); System. out .println( "---error---" ); e.printStackTrace(); } finally { HibernateUtil. closeSession (); //关闭Session之后,变为游离态对象 } }
- Hibernate的实例的三种状态
- hibernate中实例的三种状态
- 理解Hibernate的三种实例状态
- Hibernate——三种状态的实例persistent演示
- hibernate的三种状态
- Hibernate的三种状态
- hibernate的三种状态
- Hibernate的三种状态
- hibernate 的三种状态
- hibernate的三种状态
- Hibernate的三种状态
- Hibernate的三种状态
- hibernate的三种状态
- hibernate的三种状态
- Hibernate的三种状态
- Hibernate的三种状态
- Hibernate 的三种状态
- Hibernate 的三种状态
- centos5.6 python2.4.3升级2.7教程
- unity shader
- POJ 1141(Bracket Sequence)-区间DP
- C语言笔试面试常见编程题目(更新中)
- 网络流量 pv、uv、ip 各代表的含义
- Hibernate的实例的三种状态
- 用GDB调试程序以及makefile编写
- A+B for Input-Output Practice (IV)
- 动态设置LinearLayout的高度,获取手机屏幕的大小
- struts2中result type介绍
- java 修饰符的作用一(public protected default private 组)
- Ubuntu设置root用户自动登录
- jquery简单的无刷新提交和删除评论
- Android Library Project 使用问题总结