Hibernate对象的三种状态,瞬时态、持久态、游离态

1.瞬时态。(new完一个对象,突然断电,内存中没有此对象)

    hibernate中什么时候的对象为瞬时态呢,当我们new 一个对象时,还没有save时,它就是瞬时态的,当我们delete一个对象时,它也是瞬时态了,因为此时,他们在数据库中没有对应的记录存在

 

2.持久态。(持久态不一定一定要存在数据库,可以放在本地文件中)

   当我们save一个对象时,这个对象会保存到数据库,同时也会缓存在session中,同时,当我们get(),load(),updateOrSave()一个对象时,也会将这个对象缓存在session中,这时缓存中的对象与数据库是同步的,也就是持久态的,任何一方的改变都会同步更新。(持久态不一定一定要存在数据库,可以放在本地文件中)

 

3.游离态。(数据库或者本地文件中存了,然后对其中数据进行修改,修改完没有进行持久化,此时的状态是游离态)

   当对象从持久态转变为另一状态时,这个状态就是游离态了。比如:session.close(),session.evict()对象时,对象从session缓存中清除,数据库中有数据,缓存中没有数据,因为数据库中有数据,所以它是可以再被持久化的.

 

注:对象的三种状态,同Hibernate没有关系 

posted on 2017-07-10 14:32  注定要成为攻城狮的男人  阅读(268)  评论(0编辑  收藏  举报