在hibernate中对象有三种状态:瞬时态或自由态(transient)、持久化态(persistent)、托管态或游离态(detached)
(1).三态简介:
◆transient:瞬态或者自由态 (例如new Person("张三")
1.该po通过new等方式创建
2.该po的实例和session没有关联,不在session中缓存
3.该po在数据库中没有对应的记录
◆persistent:持久化状态 例如通过get和load等得到的对象
1.该po通过get、load等方法从数据库中取出并转化成对象
2.该po与session中的实例关联,在session中缓存
3.该po在数据库中有对应的记录
◆detached:脱管状态或者游离态
1.该po通过session的close、clear或者evict(obj)方法从持久态变化得到
2.该po的实例和session没有关联,不在session中缓存
3.该po在数据库中有对应的记录(前提是没有其他session删除此记录)
4.通过delete(obj)但不能执行事务(在一个事务中),也可以得到游离态的po,因delete而变成游离态可以通过save或saveOrUpdate()变成持久态。
(2)hibernate常用方法简介
◆update方法
1.操作的对象:自由态或脱管状态(因session的关闭而处于脱管状态)的对象
2.作用:将对象变为持久态(更新到数据库中)
3.触发方式:手动调用
◆flush方法
1.操作的对象:持久态对象(po)
2.作用:将对象更新到数据库中
3.触发方式:
a.手动调用
b.session的关闭、SessionFactory关闭,自动调用
c.get()一个对象,把对象的属性进行改变,把资源关闭,自动调用
d.transaction commit的时候,自动调用
e.transaction commit的时候,自动调用
◆lock方法
1.操作的对象:没有更改过的
脱管状态的对象(针对的是因Session的关闭而处于脱管状态的po对象,不能针对因delete而处于脱管状态的po对象)
2.作用:将对象变为持久化状态,等待flush方法将其更新到数据库
3.触发方式:手动调用
◆clear方法
1.操作的对象:session缓存
2.作用:完整的清除session缓存
3.触发方式:手动调用
◆evcit(obj)方法
1.操作的对象:某个持久化对象
2.作用:把某个持久化对象从session的缓存中清空
3.触发方式:手动调用
注意:在实际业务中经常需要从数据库取到一个对象,并将其进行处理,编码或解码某些属性进行其他操作,这时如果对象处于持久态,会在session关闭时同步到数据库中,而我们不想更改数据库中数据的状态,这时有两个方法解决:
1.new一个自由态的对象,拷贝原对象的属性(主键id)除外,使用new处理的新对象进行操作。
2.将对象从session中清空(evict(obj)方法),使其变为detached托管态,再进行操作。
分享到:
相关推荐
【hibernate事务管理机制】是指在使用Hibernate框架进行数据库操作时,如何管理和协调事务的一系列规则和策略。事务管理是确保数据一致性、完整性和并发控制的重要机制。 **悲观锁**是预防性的锁定策略,它假设并发...
以下是Hibernate对象的三种主要状态及其特点: 1) 临时状态(Transient State): 当通过`new`关键字创建一个新的对象时,该对象处于临时状态。在这个状态下,对象并未与任何Session关联,因此它的变化不会自动反映...
在Java的持久化框架Hibernate中,缓存机制和Session对象的管理是其高效运作的关键要素。本文将深入探讨这两个主题,以帮助开发者更好地理解和利用Hibernate。 首先,让我们聚焦于Hibernate的缓存机制。缓存的存在是...
Hibernate缓存机制是提高应用程序性能的关键特性,尤其是在频繁与数据库交互的应用中。缓存通过减少对物理数据库的直接访问次数,显著提升了数据读取和写入的速度。这主要是因为从缓存中读取数据比从数据库中获取更...
《Java精通Hibernate对象持久化技术权威指南》是一本深度探讨Java开发中如何高效地使用Hibernate进行对象持久化的专业书籍。本书旨在帮助Java开发者熟练掌握Hibernate框架,实现数据库操作的简化和自动化,提升软件...
在Java的持久化框架Hibernate中,版本管理机制是实现事务并发控制的重要手段。它通过维护对象的版本信息,确保在多线程环境下数据的一致性和完整性。本文将深入探讨Hibernate中的版本管理机制及其在控制事务并发中的...
总结,Hibernate操纵持久化对象涉及多个方面,包括对象状态管理、事务处理、查询机制、缓存策略以及关系映射等。熟练掌握这些概念和操作,将极大地提高开发效率,并有助于构建高效、稳定的数据库应用程序。通过实践...
**Hibernate对象持久化** 在Java开发中,数据库操作是不可或缺的一部分。Hibernate作为一种强大的ORM(对象关系映射)框架,极大地简化了Java应用与数据库之间的交互。它通过将Java类映射到数据库表,实现了对象...
Hibernate通过提供一种对象-关系映射机制,使得Java对象可以直接与数据库表进行交互,而无需编写大量的SQL语句。这种映射机制使得开发过程更加面向对象,提高了代码的可读性和可维护性。 本书的核心内容可能包括...
### 使用Hibernate对象持久化服务简化Java数据库访问 #### 摘要 Hibernate作为一个高效且功能丰富的对象关系映射(ORM)框架,在Java开发领域扮演着举足轻重的角色。通过强大的映射机制,Hibernate能够将Java对象...
最后,书中会探讨如何在实际项目中集成和优化Hibernate,包括事务管理、性能调优、问题排查等实战技巧。这有助于开发者在实际开发过程中更好地应用Hibernate,提升项目的稳定性和效率。 总的来说,《精通Hibernate...
Hibernate 是一个流行的 Java 框架,用于简化对象关系映射(ORM)处理,它提供了一种高效的数据缓存机制,以提高应用程序的性能。本文将深入探讨 Hibernate 的缓存机制,包括其两个级别——一级缓存和二级缓存,并...
2. **Session接口**:它是Hibernate的主要工作接口,负责对象的加载、保存、更新和删除等操作,提供了事务管理和缓存机制。 3. **Criteria查询**:提供了一种动态构建SQL查询的方式,无需编写硬编码的SQL语句,增强...
此外,Hibernate支持事务管理、缓存机制和实体生命周期管理,确保了数据的一致性和高性能。 在这个后台管理系统中,EasyUI作为前端框架,提供了丰富的组件和精美的界面设计,使得开发者可以快速构建出响应式、用户...
Hibernate则通过ORM机制,将Java对象和数据库表进行对应,简化了数据库操作的复杂性。 通过学习这个项目,你可以了解到如何整合Struts2和Hibernate,以及如何设计和实现一个简单的Web应用。它涵盖了配置文件的设置...
【精通Hibernate:Java对象持久化技术】主要涵盖了Java应用程序的分层体系结构、软件模型以及对象持久化的概念,特别是如何使用Hibernate这一ORM框架进行持久化操作。以下是详细的知识点解析: 1. **应用程序分层...
Hibernate的核心在于其强大的对象关系映射(ORM)能力,而Service Register机制则是Hibernate框架中不可或缺的一部分。这篇文章将带你深入理解Hibernate Service Register的工作原理和应用场景。 **一、Hibernate ...
6. **事务管理(Transaction Management)**:在Hibernate中,通常使用`Session`的`beginTransaction()`, `commit()`和`rollback()`方法来管理事务。事务边界内的一系列操作要么全部成功,要么全部失败,确保数据...