`
hpjianhua
  • 浏览: 237491 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

Hibernate实体对象的生命周期

阅读更多
一.Hibernate实体对象的生命周期

实体对象的3种状态

Transient(自由状态)
所谓的Transient,即实体对象在内存中自由存在,它与数据库中的记录无关.

Persistent(持久状态)
所谓的Persistent,即实体对象处于由Hibernate框架所管理的状态,这种状态下,实体对象的引用被纳入了Hibernate实体容器中加以管理.
处于Persistent状态的对象,其变更将由Hibernate持久化到数据库中.
简而言之,如果一个实体对象与某个Session实例发生了关联,并处于对应Session的有效期内,那么它将处于Persistent状态.

Detached(游离状态)
处于Persistent状态的对象,其对应的Session实例关闭之后,那么些对象就处于"Detached"状态.在数据库中存在对应的记录.

同时,三种状态可以相互转换.

实体对象的识别

实体身份识别(Data Identity)
引用比较(==)

内容比较(equals)

在站数据库的角度,我们认为,在一个库表结构中,主键可以惟一确定一条记录,那么拥有同样主键的实体对象,则认为他们等同.在Hibernate中,这个规则亦成立.
分享到:
评论

相关推荐

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

     23.1.1 Session对象的生命周期与本地线程绑定  23.1.2 Session对象的生命周期与JTA事务绑定  23.2 实现对话  23.2.1 使用游离对象  23.2.2 使用手工清理缓存模式下的Session  23.3 小结  23.4 思考题 第24章...

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

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

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

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

    Hibernate的Session的javadoc

    而且关于实体对象的生命周期也有很多概念不清,分不清transient、persistent、detached的区别,只是知道PO、VO这样的通俗叫法。其实这些概念都很简单,Hibernate的javadoc写的都很清楚,只需看看就能明白。

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

     23.1.1 Session对象的生命周期与本地线程绑定  23.1.2 Session对象的生命周期与JTA事务绑定  23.2 实现对话  23.2.1 使用游离对象  23.2.2 使用手工清理缓存模式下的Session  23.3 小结  23.4 思考题 第24章...

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

     23.1.1 Session对象的生命周期与本地线程绑定  23.1.2 Session对象的生命周期与JTA事务绑定  23.2 实现对话  23.2.1 使用游离对象  23.2.2 使用手工清理缓存模式下的Session  23.3 小结  23.4 思考题 第24章...

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

     23.1.1 Session对象的生命周期与本地线程绑定  23.1.2 Session对象的生命周期与JTA事务绑定  23.2 实现对话  23.2.1 使用游离对象  23.2.2 使用手工清理缓存模式下的Session  23.3 小结  23.4 思考题 第24章...

    Spring和Hibernate学习笔记

    第二课:测试实体对象的生命周期 第三课:hibernate基本映射 第四课:hibernate多对一关联映射 ...................... Spring: 第一课:构建Spring的环境并建立一个例子 第三课:spring Bean的作用域 第四课:...

    Hibernate_二级缓存总结

    查询缓存的生命周期,当前关联的表发生修改,那么查询缓存生命周期结束 查询缓存的配置和使用: 1. 启用查询缓存:在 hibernate .cfg.xml 中加入: ”hibernate .cache.use_query_cache”>true</property> 2. 在...

    hibernate学习笔记

    测试实体对象的生命周期(hibernate_session) 3 hibernate基本映射(hibernate_basemapping) 4 class实体类---表 4 标签id 5 主键生成器Generator 6 多对一, 一对一, 一对多, 多对多 7 hibernate多对一关联映射...

    Hibernate实战(第2版 中文高清版)

     9.1 持久化生命周期   9.1.1 对象状态   9.1.2 持久化上下文   9.2 对象同一性和等同性   9.2.1 引入对话   9.2.2 对象同一性的范围   9.2.3 脱管对象的同一性   9.2.4 扩展持久化上下文   9.3 ...

    Hibernate+中文文档

    21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 22.2. Hibernate 映射 22.3. Hibernate 代码 23. ...

    hibernate 教程

    生命周期和对象图(Lifecyles and object graphs) 9.9. 拦截器(Interceptors) 9.10. 元数据(Metadata) API 10. 事务和并行(Transactions And Concurrency) 10.1. 配置,会话和工厂(Configurations, ...

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

    21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 22.2. Hibernate 映射 22.3. Hibernate 代码 23. ...

    HibernateAPI中文版.chm

    21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 22.2. Hibernate 映射 22.3. Hibernate 代码 23. ...

    Hibernate中文详细学习文档

    21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 22.2. Hibernate 映射 22.3. Hibernate 代码 23. ...

    最全Hibernate 参考文档

    21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 22.2. Hibernate 映射 22.3. Hibernate 代码 23. 示例:...

    Hibernate 中文 html 帮助文档

    21.3. 级联生命周期(Cascading lifecycle) 21.4. 级联与未保存值(Cascades and unsaved-value) 21.5. 结论 22. 示例:Weblog 应用程序 22.1. 持久化类 22.2. Hibernate 映射 22.3. Hibernate 代码 23. 示例:...

    Hibernate教程

    22.3. 级联生命周期(Cascading lifecycle) 22.4. 级联与未保存值(Cascades and unsaved-value) 22.5. 结论 23. 示例:Weblog 应用程序 23.1. 持久化类 23.2. Hibernate 映射 23.3. Hibernate 代码 24. 示例...

Global site tag (gtag.js) - Google Analytics