11.27--Hibernate延迟加载

Hibernate延迟加载

延迟加载大致可以分为两类,一类是延迟属性加载,另一类是延迟关联实体加载。

  • 延迟属性加载
  • 延迟关联实体加载

延迟属性加载

普通属性:分两种情况,一种是集合属性,一种是非集合属性(如String、Integer……)

集合属性的延迟加载通过PersistentSet、 PersistentList、PersistentBag、PersistentMap、PersistentSortedMap、 PersistentSortedSet作为代理类来实现,代理类中保存了session以及owner属性,owner属性表示了集合属性所属的one 侧的实体。

非集合类属性的延迟加载较为复杂。仅通过懒加载模式@Basic(fetch = FetchType.LAZY)注解无法实现延迟加载。需要让实体实现FieldHandled接口,声明FieldHandler属性,通过拦截器注入对应的FieldHandler属性,起到类似于上述代理类的作用,FieldHandler同样也保持了session,以及需要延迟加载的属性。

延迟关联实体加载

猜你喜欢

转载自blog.csdn.net/qq_30625315/article/details/78646757