(八)Hibernate对象状态

        瞬时态(Transient):对象保存在内存之中,并没有在数据库中进行存储,也就是说对象一直没有存储,那么就有可能被GC回收,回收之后就像不存在一样;

        持久态(Persostent):将内存中的对象保存在数据库之中,或者某一个对象通过数据库读取,此时Session没有关闭,那么就是持久态,持久态的最大的特征就是属性的变化将引起数据库的变化,

        游离态(Detached):如果Session关闭了,那么已经读取出来的数据就变为了游离态,这个对象保存在内存之中,如果长时间不使用将被GC回收,与瞬时态最大的区别只有一点:数据库有对应数据

        瞬时态与游离态无法更新数据

        持久态可以更新,但是必须在Session关闭之前完成更新

切换方法:

        瞬时态->持久态:使用save()方法,update()方法

        持久态->游离态:关闭Session,get();

        游离态->瞬时态:delete()

面试题:请解释Hibernate对象的三种状态?

        Hibernate对象数据分别有:瞬时态,持久态,游离态

        瞬时态指的是对象只在内存中保存,数据库没有对应数据;

        持久态指的是对象保存或者取得之后不关闭Session的情况下,可以利用setter进行数据修改

        游离态指的是对象读取完成或保存成功之后关闭了Session后的状态,此时数据库对应数据.

这三种状态之中最为重要的就是持久态,它可以为我们的开发带来方便,持久态的理论来源是EJB2.x中实体Bean技术的理论来源


猜你喜欢

转载自blog.csdn.net/qq1019648709/article/details/80733486