当程序用new创建一个对象时,这个对象的生命周期就开始了,当不在有任何引用变量引用它时,对象就结束生命周期,JVM的垃圾回收器就会回收它占用的内存。
对于需要持久化的类,它的生命可能会处于以下三种状态。
一.临时状态。用new创建,但还没有被持久化,没有在session缓存中。
二.持久状态。已经持久化,出于Session缓存中。
三.游离状态。已经持久化,但不处于session缓存中。
例子:
Session session = getHibernateTemplate().getSessionFactory()
.openSession();
Transaction tr = null;
Grade grade = null;
try {
tr = session.beginTransaction();
//对象开始生命周期,临时状态。
grade = new Grade();
//处于生命周期中,转变成持久化状态。
session.save(grade);
//在生命周期中,处于持久化状态。
grade.setGrade(111);
tr.commit();
//session.flush()
} catch (Exception e) {
if (null != tr)
tr.rollback();
} finally {
//处于生命周期中,转换成游离状态
session.close();
}
//在生命周期中,处于游离状态
int num = grade.getGrade();
//结束生命周期
grade = null;
注:
Session.flush()方法和commit()方法的区别:
flush()会进行清理缓存的操作,会执行SQL语句。commit()方法首先调用flush()方法,然后提交事务。提交事务意味着数据库的修改被永久的保存下来。
临时状态和游离状态的区别:
两者都与session没有关联,游离状态时从持久化状态转换过来的,因此在数据库中有相应的记录,而临时状态在数据库中没有相应的记录。
分享到:
相关推荐
在Java开发中,持久化是将应用程序中的对象状态保存到持久存储介质(如数据库)的过程。Hibernate通过提供一种对象-关系映射机制,使得Java对象可以直接与数据库表进行交互,而无需编写大量的SQL语句。这种映射机制...
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()...
在Java应用开发中,对象持久化是一个关键环节,它涉及将程序中的对象状态存储到持久化介质(如关系型数据库)中,并在需要时恢复这些状态。Hibernate作为ORM(对象关系映射)框架,通过提供一种面向对象的方式来处理...
2. **对象状态**:Hibernate管理的对象具有三种状态:瞬时态(Transient)、持久态(Persistent)和脱管态(Detached),它们的状态转换由Hibernate的Session负责。 3. **JMX集成**:允许通过JMX(Java Management ...
在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。本篇将详细讲解如何使用Hibernate来操纵持久化对象,这对于深入理解Hibernate的核心概念至关重要。 **一、...
了解实体类、持久化属性、主键、对象状态等基本术语。 2. **配置与环境搭建**:学习如何配置Hibernate,包括hibernate.cfg.xml文件的编写,以及JDBC连接池的设置。 3. **对象关系映射(ORM)**:研究Hibernate的...
8. **实体生命周期**:详解Hibernate对对象状态的管理,包括瞬时态、持久态、游离态和脱管态,以及对象状态转换和事件监听器。 9. **多态和继承映射**:讲解如何处理类的继承关系,实现多态查询,包括单表继承、...
- **概念**:对象持久化是指将程序中的对象状态保存到外部存储介质的过程,以便在系统重启后仍然可以恢复这些对象的状态。 - **实现方式**:在Java中,常见的对象持久化方式包括使用Java序列化机制、XML文件、数据库...
Hibernate是一个基于JDBC的ORM框架,它通过XML或注解定义对象-关系映射,将Java对象转换为数据库记录,反之亦然。它封装了JDBC,提供了更高级别的API,使得数据库操作更加简单和高效。Hibernate支持多种数据库,包括...
【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...
- 当使用`new`关键字创建一个新的Java对象时,该对象是瞬时的。这意味着它们与数据库没有任何关联。如果对象不再被引用,它们会被垃圾回收器回收。瞬时对象不处于任何Session的缓存中,数据库中也没有对应的记录。...
Hibernate 是一个流行的 Java 开发框架,用于简化数据库...理解 Hibernate 对象状态及其转换对于有效管理和优化数据库操作至关重要。正确使用这些状态和保存方法能够避免数据冗余和丢失,提高应用的性能和数据一致性。
它们没有持久化标识(ID),在Hibernate的眼里,这些对象就像普通的Java对象,如果程序结束或者对象引用丢失,这些对象就会被垃圾回收器清除,数据不会保存到数据库中。在Hibernate中,通过`new`关键字创建的对象...
1. **对象关系映射(ORM)**:Hibernate通过ORM机制,将Java对象转换为数据库中的记录,反之亦然。这样,程序员可以使用面向对象的方式处理数据库操作,降低了数据库操作的复杂性。 2. **Session接口**:Hibernate...
【标题】基于Hibernate的Java对象持久化技术在农户征信管理平台设计中的应用 【内容详解】 在现代软件开发中,数据库管理和数据持久化是至关重要的环节。Hibernate作为一款优秀的Java对象关系映射(ORM)框架,极...
1. **对象关系映射(ORM)**:Hibernate的核心在于ORM,它通过XML配置或注解方式定义对象与数据库表的映射关系,使得Java对象可以直接在数据库中持久化。 2. **Session接口**:Hibernate中的Session是数据库会话的...
为了使一个Java对象成为持久化对象,我们需要使用Hibernate的注解或XML配置文件来定义映射。注解方式更简洁,例如,`@Entity`表示这个类是一个实体,`@Table(name="users")`指定对应的数据库表,`@Id`和`@...
1. **Hibernate框架**:Hibernate是一个开源的Java ORM框架,它简化了Java应用与关系数据库之间的交互,通过将Java对象映射到数据库表,实现了对象的持久化。 2. **配置文件**:在Hibernate Tryout项目中,`...