`
bd2007
  • 浏览: 385628 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

   
<p style="text-align: left;">?

<p style="text-align: left;">?

<p style="text-align: left;">? ? ? ? ? ?所谓Transient,即实体对象在内存中的自由存在,它与数据库中的记录无关。如:

      public void methodA(){
            User user = new User();
            user.setName("Huangt");            

      }

<p style="text-align: left;">? ? ? ? 这里的user对象,与数据库中的记录没有任何关系。

<p style="text-align: left;">? ? ? ?2.Persistent(持久状态)

<p style="text-align: left;">?

   Transaction tx = session.beginTransaction();
   session.save(user); 
   //此时user对象已经由Hibernate纳入实体管理容器,处于Persistent状态
   tx.commit();//事务提交之后,库表中已经插入一条用户 
    
   Transaction tx2= session.beginTransaction();
   user.setName("huang") ;//Persistent 
   anotherUser.setName("ronaldo") ; //Transient
   
   tx2.commit() ;
   /*
       虽然这个事务中我们没有显示调用session.save()保存对象
       但是由于处于Persistent状态的对象将自动被固化到数据库中,因此user对象
       的变化也将同步到数据库中,’Huangt‘用户记录已经被更新为‘huang’ 
       而对于Transient状态的anotherUser 来说,并没有改变 
    */

<p style="text-align: left;">? ? ? ? ?可以看到,处于Transient状态的实体对象,可以通过session.save() 方法转换为Persistent状态。而同样,如果一个实体对象是由Hibernate加载(如通过session.load方法获得),那么,它也处于Persistent状态。<span style="direction: ltr;">Persistent对象对应了数据库中的一条记录,可以看作是数据库记录的对象化操作接口,其状态的变更将对数据库的记录产生影响。</span>

<p style="text-align: left;">? ? ? ? ? 简而言之,如果一个实体对象与某个Session实例发生了关联,并处于对应Session有效期内,那么它就处于Persistent状态。

<p style="text-align: left;">? ? ?3.Detached(游离状态)

<p style="text-align: left;">?

<p style="text-align: left;">?

   Transaction tx = session.beginTransaction();
   session.save(user); 
   //此时user对象已经由Hibernate纳入实体管理容器,处于Persistent状态
   tx.commit();//事务提交之后,库表中已经插入一条用户 
  
   tx2.commit() ;
   
   session. close() ;
   //user对象此时状态为Detached,因为与其关联的session已经关闭

<p style="text-align: left;">?

<p style="text-align: left;">? ? ? 区别就在于Detached对象可以再次与某个Session实例相关联而成Persistent对象。
 
1
1
分享到:
评论
2 楼 小汤姆 2012-01-11  
怎么内容中这么多问号?
1 楼 hellostory 2012-01-11  
都不能看,楼主是从那边直接抄袭的?恳请能否给个链接!

相关推荐

    05_传智播客hibernate教程_实体对象的三种状态与saveOrUpdate方法

    05_传智播客hibernate教程_实体对象的三种状态与saveOrUpdate方法

    精通 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:对象持久化技术孙卫琴第二版part2

    本章主要介绍关系数据库中的代理主键(不具有业务含义),接着介绍Hibernate提供的几种内置标识符生成器的用法及适用范围。 6.1 关系数据库按主键区分不同的记录 123 6.1.1 把主键定义为自动增长标识符类型 123 ...

    HiberNate实体

    hibernate实体有三个状态 1、瞬时状态 对象由new操作符创建,尚未与Session关联的对象被认为处于瞬态.瞬态对象不会持久化到数据库中,也不会被赋予持久化标识.而这个时候只在内存中存在,与数据库无关 2、持久状态 ...

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

    本章主要介绍关系数据库中的代理主键(不具有业务含义),接着介绍Hibernate提供的几种内置标识符生成器的用法及适用范围。 6.1 关系数据库按主键区分不同的记录 123 6.1.1 把主键定义为自动增长标识符类型 123 ...

    Hibernate学习笔记和资料

    hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置实体规则,核心API详解(Configuration,sessionFactory,session,Transaction),hibernate中的对象状态以及刷新能缓存机制 ...

    JPA学习笔记-EJB-05JPA实体对象状态和实体对象的高级操作

    虽然持久化实体的状态在ORM中是一个老生常谈的问题,但是说实在的,我们在开发过程中真的不太在意实体的状态。在Web一般情况下也都是交给Spring去管理实体管理器(EntityManager),所以我们还是有必要啰嗦一下,...

    传智播客李勇hibernate源码1-20课

    05_实体对象的三种状态与saveOrUpdate方法 06_完善HibernateUtil类及hql查询入门 07_实体类或属性名与数据库关键字冲突问题 10_使用Hibernate完成CRUD实验的步骤说明 11_完成CRUD实验并回顾和补充细节知识(上)...

    精通 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实战(第2版 中文高清版)

     6.4.4 级联对象状态   6.5 小结   第7章 高级实体关联映射   7.1 单值的实体关联   7.1.1 共享的主键关联   7.1.2 一对一的外键关联   7.1.3 用联结表映射   7.2 多值的实体关联   7.2.1 一对多...

    Hibernate+中文文档

    10.1. Hibernate对象状态(object states) 10.2. 使对象持久化 10.3. 装载对象 10.4. 查询 10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改...

    HibernateAPI中文版.chm

    10.1. Hibernate对象状态(object states) 10.2. 使对象持久化 10.3. 装载对象 10.4. 查询 10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改...

    hibernate3.2中文文档(chm格式)

    10.1. Hibernate对象状态(object states) 10.2. 使对象持久化 10.3. 装载对象 10.4. 查询 10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改...

    Hibernate中文详细学习文档

    10.1. Hibernate对象状态(object states) 10.2. 使对象持久化 10.3. 装载对象 10.4. 查询 10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改...

    Hibernate 中文 html 帮助文档

    10.1. Hibernate对象状态(object states) 10.2. 使对象持久化 10.3. 装载对象 10.4. 查询 10.4.1. 执行查询 10.4.1.1. 迭代式获取结果(Iterating results) 10.4.1.2. 返回元组(tuples)的查询 10.4.1.3. 标量(Scalar)...

    最全Hibernate 参考文档

    10.1. Hibernate对象状态(object states) 10.2. 使对象持久化 10.3. 装载对象 10.4. 查询 10.4.1. 执行查询 10.4.1.1. 迭代式获取结果(Iterating results) 10.4.1.2. 返回元组(tuples)的查询 10.4.1.3. 标量(Scalar)...

    Hibernate注释大全收藏

    上述实体映射到数据库中的时候对应 Order 实体Bean, 其具有 id, lastUpdate, lastUpdater 三个属性。如果没有@MappedSuperclass 注解,则父类中属性忽略,这是 Order 实体 Bean 只有 id 一个属性。 映射实体Bean的...

Global site tag (gtag.js) - Google Analytics