`

第四章Hibernate持久化对象的生命周期

阅读更多

第四章 持久化对象的生命周期

  •    持久化对象生命周期的状态
  •   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状态为删除状态。

  •  Session对象的"脏"数据检查

     * 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属于持久态。

  • Session接口的核心方法

    1  saveOrUpDate()方法

           判断给的对象是否有主键值,如果有则update,否则就save。

    2  flush()方法

       清除缓存的方法,如果获取session的方法是getCurrentSession,则不需要再了。

  •  不可更改的持久化对象

     所操作的持久化对象是只读的,只进行读取,不进行增加,更新和删除的操作。

分享到:
评论

相关推荐

    精通Hibernate:Java对象持久化技术详解

    6. **实体生命周期管理**:Hibernate自动管理对象的状态,包括瞬态、持久化、托管和脱管四种状态,以及它们之间的转换。 7. **多对一、一对多、多对多关系映射**:Hibernate支持复杂的关联关系映射,如单向关联、...

    精通Hibernate:Java持久化对象技术详解[第二版]

    《精通Hibernate:Java持久化对象技术详解[第二版]》是一部深入探讨Hibernate框架的专业书籍,旨在帮助Java开发者熟练掌握和运用这一强大的ORM(Object-Relational Mapping)工具。Hibernate是Java开发领域中广泛...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     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持久化技术详解.孙卫琴.代码2

    **hibernate持久化技术详解** Hibernate是一款强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用中操作数据库的强大工具。通过Hibernate,开发者可以将数据库操作转化为对Java对象的操作,大大降低了...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、删除状态和游离状态。处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 ...

    Hibernate 对象持久化

    在Hibernate中,对象的生命周期包括瞬时态、托管态、持久态和脱管态。通过Hibernate,我们可以轻松地将对象从内存中保存到数据库,或者从数据库中加载到内存。 **三、Hibernate配置** 使用Hibernate,首先需要配置...

    精通Hibernate:对象持久化技术第二版part3

    本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、删除状态和游离状态。处于持久化状态的Java对象位于一个Session实例的缓存中,Session能根据这个对象的属性变化来同步更新数据库。 8.1 ...

    深入理解持久化对象

    持久化对象是Hibernate框架的核心概念之一,通过合理的状态管理和生命周期控制,可以极大地提高应用程序的开发效率和维护性。理解和掌握持久化对象的状态转换及修改方法,对于高效使用Hibernate框架至关重要。

    Hibernate 面试题

    1. **持久化对象的生命周期**:在Hibernate中,对象经历了临时态、持久态和游离态三个状态。临时态的对象没有与Session关联,数据未保存到数据库;持久态对象已与Session绑定,其状态会随Session的提交而保存到...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     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 对象持久化技术详解(第2版).part3

     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 对象持久化技术详解(第2版).part1.rar

     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执行持久层访问步骤

    1. 第一级缓存:Session内部维护的缓存,保存了Session生命周期内的对象,自动管理读写操作。 2. 第二级缓存:可选配置,通过插件如Ehcache实现,跨Session共享,提高性能。 以上就是Hibernate执行持久层访问的基本...

    1对象持久化与hibernate基础共48页.pdf.zi

    5. 对象状态:Hibernate识别四种对象状态:瞬时态、持久态、托管态和脱管态,每种状态对应不同的生命周期和行为。 6. 注解支持:Hibernate除了传统的XML配置外,还支持使用Java注解进行映射,使代码更加简洁。 在...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    hibernate-符合Java习惯的关系数据库持久化

    9. **生命周期:** Hibernate对象有瞬时态、持久态、托管态和游离态四种状态,理解这些状态对于正确使用Hibernate至关重要。 10. ** Hibenate事件和监听器:** Hibernate提供了一套事件系统,允许用户在特定操作...

    HIBERNATE符合Java习惯的关系数据库持久化

    9. **实体状态**:Hibernate将实体对象的状态分为瞬时态、持久态、游离态和删除态,理解这些状态有助于我们更好地控制对象的生命周期和数据操作。 通过学习以上知识点,你可以全面掌握Hibernate的使用,实现Java...

    hibernate操纵实体对象

    在Java的持久化框架中,Hibernate是一个非常重要的工具,它简化了数据库操作,使得开发者能够更专注于业务逻辑而不是底层的数据存储。在这个主题“hibernate操纵实体对象”中,我们将探讨如何使用Hibernate来创建、...

    hibernate_persistence第17-23章书中代码

    《hibernate_persistence》是关于Hibernate持久化技术的一本书,涵盖了从第17章到第23章的代码示例。这些章节的代码主要涉及了Hibernate在数据库操作中的核心功能,包括查询条件设置、高级查询、数据源配置以及与...

Global site tag (gtag.js) - Google Analytics