Hibernate3.2懒加载分析

懒加载主要通过asm.jar和cglib.jar两个包实现, Domain是非final的,
1,session.load()懒加载.
2,one-to-one(元素) 懒加载:
必须同时满足下面三个条件才能实现懒加载,
1): (主表不能有constrained=true,所以主表没有懒加载,
2):  lazy!=false) constrained=true,
3,fetch=select


3,one-to-many(元素)懒加载: 1): lazy!=false,2),fetch=select

4, many-to-one(元素)懒加载: 1);lazy!=false,2)fetch=select,

5,many-to-many(元素)懒加载: 1)lazy!=false, 2)fetch=select

6,能够懒加载的对象都是被改写过的对象,当相关联的session没有关闭时,访问这些懒加载对象(代理对象的属性)(getId和getClass除外),hibernate会初始化这些代理,或用Hibernate.initialize(proxy)来初始化代理对象;当相关联的session关闭后,再访问懒加载对象会出现异常.

你可能感兴趣的:(Hibernate)