Hibernate中pojo对象的三种状态:
1)临时状态
临时状态的对象没有与Hibernate的session相关联,一般情况下没有ID(数据库中的主键属性)
2)持久状态
由Hibernate的Session维护,与Session关联,有主键ID.
3)游离状态
已经经过持久状态的对象,些时Session已经关闭了。
Hibernate的延迟加载和一级缓存。
延迟加载:当我们加载某个对象的时候,些时我们并没有使用这个对象,那么Hibernate并不向数据库中加载些对象,而是等用到该对象的时候才加载该对象。
一级缓存:如果一个对象处于持久状态。那么hibernate会在Session缓存这个对象。当下次再要加载这个对象的时候,是从缓存中加载,而不必从数据库中加载了。
Hibernate中方法的区别。
get():不支持延迟加载,当数据库中没有些对象时,抛出NullPoint异常。
load():支持延迟加载。当数据库中没有些记录时,抛出ObjectNotFoundException。