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 注定要成为攻城狮的男人 阅读(269) 评论(0) 编辑 收藏 举报