码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate笔记——2.深入理解持久化对象

时间:2015-08-25 12:41:18      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:hibernate

持久化类的要求

Hibernate对于持久化类的要求非常少。

  1. 它需要提供一个无参数的构造器,以便hibernate能够创建持久化实例。至少应该是包可见的。

  2. 提供一个标识属性,一般为数据库表的主键字段。

  3. 每个成员变量需要有set与get方法。

  4. 是非final类,以便Hibernate能够生成代理。

  5. 重写equals和hashCode方法:如果需要把持久化类放入Set中需要重写。


持久化类的状态

  1. 瞬态:对象被new出来但尚未与session关联。瞬态对象不会被持久化到数据库中,也不会被赋予持久化标识。使用Hibernate Session可以将瞬态变为持久化状态。

  2. 持久化:持久化实例在数据库中有对应的记录,并游泳一个持久化标识。持久化的实例可以是刚刚保存的,也可以是刚刚被加载的。持久化对象必须与Session关联(代码中的sess.save(s)),Hibernate能够知道哪些对象是持久化状态的,并且会在当前操作结束后将对象属性的变化写到数据库中,而我们无需手动update。

  3. 托管:曾经处于持久化的但与Session的关联断开的实例。此时仍可修改数据,再次持久化时之前修改的数据不会丢失也会写入DB。正因如此,逻辑上的长事务才成为可能(应用程序事务)。处于托管状态的对象无处锁定数据库,不会造成数据库性能下降。





本文出自 “指尖轻飞” 博客,谢绝转载!

Hibernate笔记——2.深入理解持久化对象

标签:hibernate

原文地址:http://mengcao.blog.51cto.com/9395052/1687523

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!