Hibernate中通过session提供的不同方法,使Java对象在不同状态间互相转换,Hibernate中定义并支持以下对象状态:瞬时对象、持久对象和脱管对象。
一、瞬时对象
一般情况下被Java的new操作符创建的对象,称为瞬时对象。瞬时对象没有和任何数据库数据关联,如果接下来没有被持久化或者被其他的对象所引用,就会被JVM的GC所销毁。
只有在调用Hibernate session的持久化方法(save()、saveOrUpdate()等)才能把瞬时对象转变成持久对象。
//瞬时对象
Person person = new Person();
Session session =sessionFactory.getCurrentSession();
session.setName("liuzhao");
session.save(person);
//持久对象
person.getName();
session.close();
二、持久对象
持久对象定义为关联到数据库记录的对象实例,同时具有持久化标识,该标识将持久对象
和数据库记录关联。持久对象调用delete()方法就会转换成瞬时状态,调用close()、clear
()等方法将转换成脱管状态。
Session session =sessionFactory.getCurrentSession();
Transaction tx =session.beginTransaction();
//加载持久对象
Person person = session.load(Person.class,new Long(1));
//变成瞬时对象
session.delete(person);
person.setName("caixj");
//变成持久对象
session.save(person);
...
tx.commit()
//脱管对象
session.close();
三、脱管对象
脱管对象是持久对象的延续,此时的对象状态已经不被Hibernate Session 说管理,对象属性和数据库记录不再保持同步。
在脱管状态下,应用程序对脱管对象的引用依然有效,对象可以继续被修改。在正常情况下,不需要我们显示地进行对象转换,因为Hibernate session被关闭的时候,对象就自动变为脱管对象了。如果需要显示地调用的话,可以调用evict()方法,不过该方法主要是用在Hibernate的缓存管理中。
- 大小: 21.8 KB
分享到:
相关推荐
Hibernate的核心概念之一就是持久化对象的生命周期,这涉及到对象在数据库中的状态及其与Session的关系。 首先,我们来看一下Hibernate中持久化对象的三种基本状态: 1. **瞬时对象(Transient Objects)**: - ...
**标题:Hibernate 操纵持久化对象** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。本篇将详细讲解如何使用Hibernate来操纵持久化对象,这对于深入理解...
### 精通Hibernate持久化对象技术 #### Hibernate概述 Hibernate是一种开源的对象关系映射(Object Relational Mapping,ORM)框架,它为Java应用程序提供了一种简单、灵活的方式来与数据库进行交互。通过...
本文将深入探讨Hibernate中的持久化对象生命周期,包括瞬时对象、持久化对象和游离对象的状态转换及其特性。 1. 瞬时对象(Transient Objects) 瞬时对象是指通过`new`操作符创建但尚未与数据库记录关联的Java对象...
4. **HQL(Hibernate Query Language)**:面向对象的查询语言,类似于SQL,但更接近Java的语法,用于检索和操作持久化对象。 5. **第二级缓存**:Hibernate支持查询结果的缓存,可以显著提高系统性能,特别是对于...
Hibernate 操作持久化对象是Java开发中用于简化数据库交互的重要工具。它是一个开源的Java持久化框架,由Gavin King创建,并逐渐发展成为Java世界中主流的持久化解决方案。Hibernate的核心在于提供对象-关系映射(ORM...
《精通Hibernate:Java对象持久化详解》是一本深入解析Hibernate技术的专著,它主要针对Java开发者,旨在帮助他们理解和掌握Java对象持久化的精髓。Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了...
在理解Hibernate持久化对象的三个状态之前,首先要明白Hibernate是一个对象关系映射(ORM)框架,它将数据库操作转化为对Java对象的操作。这三个状态决定了对象与数据库之间的一致性及生命周期,分别是: 1. **瞬时...
《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...
**hibernate持久化技术详解** Hibernate是一款强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用中操作数据库的强大工具。通过Hibernate,开发者可以将数据库操作转化为对Java对象的操作,大大降低了...
《精通Hibernate:Java持久化对象技术详解[第二版]》是一部深入探讨Hibernate框架的专业书籍,旨在帮助Java开发者熟练掌握和运用这一强大的ORM(Object-Relational Mapping)工具。Hibernate是Java开发领域中广泛...
【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...
在JDO中,首先需要编写POJO,然后通过一个名为Enhancer的工具在编译后阶段对POJO的字节码进行增强,生成对应的持久化对象。这意味着JDO的转换过程发生在编译期间,而Hibernate的转换是在运行时。 Hibernate的优点...
精通 Hibernate:Java 对象持久化技术详解 第2版 学习Hibernate必备得一本书
精通 Hibernate_Java 对象持久化技术详解(第2版).pdf
《Java精通Hibernate对象持久化技术权威指南》是一本深度探讨Java开发中如何高效地使用Hibernate进行对象持久化的专业书籍。本书旨在帮助Java开发者熟练掌握Hibernate框架,实现数据库操作的简化和自动化,提升软件...
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的数据持久化机制是通过ORM技术将Java对象与数据库表进行绑定,使得开发者可以通过简单的对象操作实现对数据库的复杂操作。理解并熟练运用Hibernate,不仅可以提高开发效率,还能使应用程序更加...
#### 持久化对象属性的访问机制 每种持久化机制都有其特有的访问方式。例如,EJB 使用 Bean 层接口,JDO 使用 PersistenceManager,而 Hibernate 则采用了 session 接口。Hibernate 使用 session 接口,在系统启动...