`
yutaozxy
  • 浏览: 69046 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Hibernate中的3种状态

阅读更多

     Hibernate中存在3种状态:

(1)瞬时状态:瞬时状态就是用new出来的一个对象并且它没有被Hibernate的session所管理,数据库中也没有与之对应的数据.我们可以调用Session的save()方法或update()方法或saveOrUpdate()方法等使瞬时状态的对象变成持久化状态的对象.看一下例子.

/*
  * 瞬时状态的对象变成持久化的对象
  */
 static void persistUser(User user){
  Session session=null;
  try{
   session=HibernateUtil.getSession();
   session.beginTransaction();
   session.save(user);            (1)
   session.getTransaction().commit();
  }catch(HibernateException e){
   if(session.getTransaction()!=null)
    session.getTransaction().rollback();
   throw e;
  }finally{
   if(session!=null){
    if(session.isOpen()){
     session.close();
    }
   }
  }
 }

在(1)之间的对象就被保存为持久化状态的对象,被放到了session的一级缓存中去了,只有当session关闭时才会脱离session的管理变成游离状态.

(2)持久化状态:持久化状态就是受到session的管理并且数据库中有与之对应的数据,持久化状态的对象调用session的close()方法或clear()方法或evcit()方法等使持久化状态的对象变成脱离状态(游离状态)的对象.

static void changeState(User user){
  Session session=null;
  User u=user;
  try{
   session=HibernateUtil.getSession();
   session.beginTransaction();
   session.save(u); (1)
   session.getTransaction().commit();
  }catch(HibernateException e){
   if(session.getTransaction()!=null)
    session.getTransaction().rollback();
   throw e;
  }finally{
   if(session!=null){
    if(session.isOpen()){
     session.close();
    }
   }
  }
  System.out.println(u.getName());   (2)
 }

(1)为持久化状态,(2)为脱离状态.

(3)脱离状态:脱离状态就是数据库中有与之对应的数据而不受session的管理.

如上例子的(2)处

 

  • 大小: 26.3 KB
分享到:
评论

相关推荐

    hibernate对象三种状态

    在Java的持久化框架Hibernate中,对象存在三种不同的状态,分别是持久态(Persistent)、自由态(Transient)和游离态(Detached)。这三种状态分别对应了对象与数据库的关联程度,理解它们对于高效地使用Hibernate...

    hibernate的三种状态及其相互转换

    这是一个讲解了关于hibernate三种状态之间的转换,如果想知道他们之间的相关总结和理解,这是一个不错的选择

    Hibernate中对象的三种状态

    在Java的持久化框架Hibernate中,对象的状态管理是其核心特性之一...总之,理解Hibernate中对象的三种状态以及它们之间的转换对于开发人员来说至关重要。熟练掌握这些概念有助于编写出更加高效、可靠的Java持久化代码。

    Hibernate中的实体状态及转换

    首先,我们要了解Hibernate定义的三种实体状态: 1. **临时状态(Transient)**:当我们在程序中通过`new`关键字创建一个实体对象时,它默认处于临时状态。此时,对象未被Hibernate管理,即使对象包含了主键ID,如果...

    Hibernate三种状态区分

    在 Hibernate 中,对象有三种不同的状态,这些状态决定了对象与数据库之间的关联程度以及如何进行数据操作。理解这些状态对于有效地使用 Hibernate 至关重要。 1. **瞬时态(Transient)**: - 瞬时态的对象是刚刚...

    Hibernate 对象的三种状态和特点

    在Java的持久化框架Hibernate中,对象的状态是理解其工作原理的关键部分。这些状态决定了对象与数据库之间的关联程度,以及Hibernate如何处理对象的生命周期。以下是Hibernate对象的三种主要状态及其特点: 1) 临时...

    hibernate中session对象的状态详解

    hibernate中session对象的状态详解

    hibernate3.zip 包含hibernate3.jar

    在Java开发中,Hibernate3主要提供了以下关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库表与Java类之间建立映射的技术,允许开发者以面向对象的方式处理数据库。Hibernate通过XML配置文件或注解来定义...

    Hibernate3中文文档

    3. **实体类和注解**:在Hibernate3中,可以使用注解来标记实体类及其属性,如`@Entity`、`@Table`、`@Column`等,这些注解定义了对象如何映射到数据库表。 4. **持久化类和标识符**:每个实体类都有一个唯一的...

    Hibernate三种状态

    Hibernate对象有三种状态:瞬时状态(Transient)、持久状态(Persistent)和脱管状态(Detached)。理解这些状态对于优化数据操作和避免潜在的问题至关重要。 首先,瞬时状态(Transient)是指通过new关键字创建的...

    hibernate3 中文API

    Hibernate管理这些状态的转换,确保对象在数据库中的正确映射。 12. **集合映射(Collection Mapping)**: Hibernate支持多种集合类型(List、Set、Map等)的映射,以及一对多、多对一、一对一和多对多的关系映射。...

    hibernate3 中文参考手册

    Hibernate是一种流行的开源对象关系映射(ORM)框架,它在Java环境中非常受欢迎。它主要用于将Java对象映射到关系型数据库的表格上。Hibernate通过使用XML文件或注解来实现映射,极大地简化了数据持久化层的代码,...

    Hibernate3的依赖包

    在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用程序所需的一系列库文件,这些库文件是实现ORM功能的关键组成部分。 在Java开发中,Hibernate3依赖包的引入是为了支持以下核心功能: 1. **对象关系映射...

    hibernate相关配置 3种状态

    本篇将详细阐述Hibernate中的对象映射关系以及对象的三种状态。 对象映射是Hibernate的核心特性,它通过ORM(Object-Relational Mapping)技术将Java对象与数据库表之间的关系进行映射。Hibernate提供了一种声明式...

    Hibernate 三种状态

    在 Hibernate 中,对象的状态管理是其核心特性之一,主要包括三种状态:瞬时状态(Transient)、持久化状态(Persistent)以及游离状态(Detached)。本文将详细阐述这三种状态的特点及其转换机制。 #### 二、瞬时...

    hibernate3中文官方文档

    《Hibernate 3.3.2 中文官方文档》是一份详尽阐述 Hibernate 框架的权威指南,针对的是 Java 开发者,尤其是那些在企业级应用开发中使用 ORM(对象关系映射)技术的人群。Hibernate 是一个开源的、强大的 ORM 解决...

    hibernate中文参考手册

    《Hibernate中文参考手册》是Java开发领域中关于Hibernate框架的重要学习资源,主要涵盖了Hibernate的中文API及详尽的参考信息。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它极大地简化了Java应用程序对...

    Hibernate Session 4种对象状态.docx

    Hibernate将对象的状态划分为四种:临时状态、持久化状态、游离状态和删除状态。这些状态反映了对象与数据库记录之间的关系,有助于理解Hibernate如何管理和操作数据。 1. **临时状态(Transient State)**: 当一...

    hibernate3.rar

    在Hibernate3中,主要包含以下几个核心概念和功能: 1. 实体(Entities):在Hibernate中,实体对应于数据库中的表,通常是一个Java类。开发者可以定义一个Java类,并通过注解或XML配置文件将其映射到数据库表。...

    Hibernate 中文api 等学习资料

    7. **实体生命周期**:了解Hibernate如何处理对象的创建、更新、删除等状态变化。 8. **性能调优**:包括批处理、连接池配置、查询优化等方面的知识。 9. **拦截器和事件监听器**:学习如何自定义行为,比如在对象...

Global site tag (gtag.js) - Google Analytics