学过hibernate的人都可能都知道hibernate有三种状态,transient(瞬时状态),persistent(持久化状态)以及detached(离线状态),大家伙也许也知道这三者之间的区别,比如瞬时状态就是刚new出来一个对象,还没有被保存到数据库中,持久化状态就是已经被保存到数据库中,离线状态就是数据库中有,但是session中不存在该对象。
好了,废话不多说了,相信大家都知道hibernate的这三种状态的含义,那我们就通过一张图来开始我们的深入hibernate的三种状态之旅吧。
三种状态可以相互转换
Student student=new student();就是刚new出来一个对象,还没有被保存到数据库中,这种属于临时状态
session.save(student);已经被保存进数据库的实体对象,并且这个实体对象现在还处于Hibernate的缓存管理之中持久化状态
session.close()evict();当一个持久化对象,脱离开Hibernate的缓存管理后,它就处于游离状态。