第四章 持久化对象的生命周期
- 持久化对象生命周期的状态
-
Session对象的"脏"数据检查
-
Session接口的核心方法
saveOrUpdate()方法
flush()方法
close()方法
Transient 瞬态 Persistent 持久态 Removed移除态 Detached 脱离态
1.
Transient
User user = new User("crazy","HF");
2.Persistent
Session session = new Configuration().configure().buildSessionFactory().openSession();
session.beginTransaction();
User user = new User("crazy","HF");
session.save(user);
session.getTransaction().commit();
save之后,user对象从瞬态转为持久态。
3.Detached
Session session = new Configuraion().configure().buildSessionFactory().openSession();
session.beginTansaction();
User user = (User)session.get(User.class,1);
session.getTransaction().commit();
user.setName("crazy grass");
此时的user状态为脱离状态。
4.Removed状态
Session session = new Configuration().configure().buildSessionFactory().openSession();
session.beginTransaction();
User user = (User) session.get(User.class,1);
session.delete(user);
session.getTransaction().commit();
此时的user状态为删除状态。
* Persistent状态的对象受Session的管理,我们对对象的属性值的修改,在Session对象调用close()方法或者Transaction对象执行commit()方法之后,数据库中对应的数据也会跟着同步更新。
Session session = new Configuration().configure().buildSessionFactoy().oepnSession();
session.beginTransaction();
User user = (User)session.get(User.class,1);
user.setName("grass");
user.setAddress("HF");
session.getTransaction().commit();
在Session没有提交前,user属于持久态。
1 saveOrUpDate()方法
判断给的对象是否有主键值,如果有则update,否则就save。
2 flush()方法
清除缓存的方法,如果获取session的方法是getCurrentSession,则不需要再了。
所操作的持久化对象是只读的,只进行读取,不进行增加,更新和删除的操作。
分享到:
相关推荐
6. **实体生命周期管理**:Hibernate自动管理对象的状态,包括瞬态、持久化、托管和脱管四种状态,以及它们之间的转换。 7. **多对一、一对多、多对多关系映射**:Hibernate支持复杂的关联关系映射,如单向关联、...
《精通Hibernate:Java持久化对象技术详解[第二版]》是一部深入探讨Hibernate框架的专业书籍,旨在帮助Java开发者熟练掌握和运用这一强大的ORM(Object-Relational Mapping)工具。Hibernate是Java开发领域中广泛...
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持久化技术详解** Hibernate是一款强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用中操作数据库的强大工具。通过Hibernate,开发者可以将数据库操作转化为对Java对象的操作,大大降低了...
本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、删除状态和游离状态。处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 ...
在Hibernate中,对象的生命周期包括瞬时态、托管态、持久态和脱管态。通过Hibernate,我们可以轻松地将对象从内存中保存到数据库,或者从数据库中加载到内存。 **三、Hibernate配置** 使用Hibernate,首先需要配置...
本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、删除状态和游离状态。处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 ...
持久化对象是Hibernate框架的核心概念之一,通过合理的状态管理和生命周期控制,可以极大地提高应用程序的开发效率和维护性。理解和掌握持久化对象的状态转换及修改方法,对于高效使用Hibernate框架至关重要。
1. **持久化对象的生命周期**:在Hibernate中,对象经历了临时态、持久态和游离态三个状态。临时态的对象没有与Session关联,数据未保存到数据库;持久态对象已与Session绑定,其状态会随Session的提交而保存到...
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()...
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()...
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()...
1. 第一级缓存:Session内部维护的缓存,保存了Session生命周期内的对象,自动管理读写操作。 2. 第二级缓存:可选配置,通过插件如Ehcache实现,跨Session共享,提高性能。 以上就是Hibernate执行持久层访问的基本...
5. 对象状态:Hibernate识别四种对象状态:瞬时态、持久态、托管态和脱管态,每种状态对应不同的生命周期和行为。 6. 注解支持:Hibernate除了传统的XML配置外,还支持使用Java注解进行映射,使代码更加简洁。 在...
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...
9. **生命周期:** Hibernate对象有瞬时态、持久态、托管态和游离态四种状态,理解这些状态对于正确使用Hibernate至关重要。 10. ** Hibenate事件和监听器:** Hibernate提供了一套事件系统,允许用户在特定操作...
9. **实体状态**:Hibernate将实体对象的状态分为瞬时态、持久态、游离态和删除态,理解这些状态有助于我们更好地控制对象的生命周期和数据操作。 通过学习以上知识点,你可以全面掌握Hibernate的使用,实现Java...
在Java的持久化框架中,Hibernate是一个非常重要的工具,它简化了数据库操作,使得开发者能够更专注于业务逻辑而不是底层的数据存储。在这个主题“hibernate操纵实体对象”中,我们将探讨如何使用Hibernate来创建、...
《hibernate_persistence》是关于Hibernate持久化技术的一本书,涵盖了从第17章到第23章的代码示例。这些章节的代码主要涉及了Hibernate在数据库操作中的核心功能,包括查询条件设置、高级查询、数据源配置以及与...