1.站在持久化的角度, Hibernate 把对象分为 4 种状态:持久化状态, 临时状态, 游离状态, 删除状态.

   Session 的特定方法能使对象从一个状态转换到另一个状态.

2. 临时对象(Transient:

              –在使用代理主键的情况下, OID 通常为 null

              –不处于 Session 的缓存中

              –在数据库中没有对应的记录

3. 持久化对象(也叫”托管”)Persist):

             –OID 不为 null

             –位于 Session 缓存中

            –若在数据库中已经有和其对应的记录, 持久化对象和数据库中的相关记录对应

           –Session flush 缓存时, 会根据持久化对象的属性变化, 来同步更新数据库

           –在同一个 Session 实例的缓存中, 数据库表中的每条记录只对应唯一的持久化对象

4.删除对象(Removed)

           –在数据库中没有和其 OID 对应的记录

          –不再处于 Session 缓存中

          –一般情况下, 应用程序不该再使用被删除的对象

5.游离对象(也叫”脱管”) Detached):

          –OID 不为 null

           不再处于 Session 缓存中

           –一般情况需下, 游离对象是由持久化对象转变过来的, 因此在数据库中可能还存在与它对应的记录

Hibernate----学习(4)----持久化对象的状态

 

 

 

 

 

 

 

 

 

 

 

相关文章: