-
//瞬时对象
-
Personperson=newPerson();
-
-
Sessionsession=sessionFactory.getCurrentSession();
-
session.setName("liuzhao");
-
session.save(person);
-
//持久对象
-
person.getName();
-
-
session.close();
-
Sessionsession=sessionFactory.getCurrentSession();
-
Transactiontx=session.beginTransaction();
-
//加载持久对象
-
Personperson=session.load(Person.class,newLong(1));
-
//变成瞬时对象
-
session.delete(person);
-
person.setName("caixj");
-
//变成持久对象
-
session.save(person);
-
...
-
tx.commit()
-
//脱管对象
-
session.close();
Hibernate中通过session提供的不同方法,使Java对象在不同状态间互相转换,Hibernate中定义并支持以下对象状态:瞬时对象、持久对象和脱管对象。
一、瞬时对象
一般情况下被Java的new操作符创建的对象,称为瞬时对象。瞬时对象没有和任何数据库数据关联,如果接下来没有被持久化或者被其他的对象所引用,就会被JVM的GC所销毁。
只有在调用Hibernate session的持久化方法(save()、saveOrUpdate()等)才能把瞬时对象转变成持久对象。
Java代码
二、持久对象
持久对象定义为关联到数据库记录的对象实例,同时具有持久化标识,该标识将持久对象
和数据库记录关联。持久对象调用delete()方法就会转换成瞬时状态,调用close()、clear
()等方法将转换成脱管状态。
Java代码
三、脱管对象
脱管对象是持久对象的延续,此时的对象状态已经不被Hibernate Session 说管理,对象属性和数据库记录不再保持同步。
在脱管状态下,应用程序对脱管对象的引用依然有效,对象可以继续被修改。在正常情况下,不需要我们显示地进行对象转换,因为Hibernate session被关闭的时候,对象就自动变为脱管对象了。如果需要显示地调用的话,可以调用evict()方法,不过该方法主要是用在Hibernate的缓存管理中。
相关推荐
Hibernate持久化对象的生命周期 持久化对象的状态: 瞬时对象(Transient Objects)持久化对象(Persist Objects)、离线对象(Detached Objects)、 Java对象在JVM中的生命周期 理解Session的缓存 在Hibernate应用...
hibernate持久化对象生命周期[参照].pdf
精通hibernate持久化对象技术.pdf ,一部很经典的书。
一个很好的Hibernate 操纵持久化对象例子,如果想深入理解HIERNATE 的朋友,可以去研究一下。
Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象Hibernate操作持久化对象
精通Hibernate:Java对象持久化技术详解
精通Hibernate:Java对象持久化技术详解.pdf 精通Hibernate:Java对象持久化技术详解.pdf
精通Hibernate:Java对象持久化详解解压后是pdf文档。
Hibernate中的对象有3中状态,瞬时对象(TransientObjects)、持久化对象(PersistentObjects)和离线对象(DetachedObjects也叫做脱管对象),下面通过本文给大家分享Hibernate持久化对象的三个状态,一起看看吧
精通Hibernate:Java持久化对象技术详解[第二版]
精通 Hibernate:Java 对象持久化技术详解 第2版 学习Hibernate必备得一本书
精通Hibernate:Java对象持久化技术详解(第2版)源码精通Hibernate:Java对象持久化技术详解(第2版)源码
8.3 Java对象在Hibernate持久化层的状态 8.3.1 临时对象的特征 8.3.2 持久化对象的特征 8.3.3 被删除对象的特征 8.3.4 游离对象的特征 8.4 Session接口的详细用法 8.4.1 Session的save()和persist()...
一共有三个分卷。全部下载才能解压。 这本书不错,值得一看。
用Hibernate对象持久化服务简化Java数据库访问 用Hibernate对象持久化服务简化Java数据库访问
16.1 MB (16,948,839 字节) Java 精通Hibernate对象持久化技术详解PDF
精通 Hibernate_Java 对象持久化技术详解(第2版).pdf
Hibernate 对象持久化 北大青鸟教材
在Struts中,循环显示List中的数据使用什么标签? 如何使用MVC模式组织Java Web应用? 程序的DAO层(数据访问层)完成什么任务?
精通HibernateJava对象持久化技术详解(第2版)jar文件.zip) annotations-api.jar antlr-2.7.6.jar catalina-ant.jar catalina-ha.jar catalina-tribes.jar catalina.jar commons-collections-3.1.jar commons-...