关于懒加载

默认的情况下,lazy="true",fetch="select"。

所谓懒加载,就是不访问数据库,不返回实际的对象,而是返回一个代理对象。在实际使用时,才会访问数据库。

比如,Employee emp=session.get(Employee.class,id);

而Employee中有一个多对一的关联,关联到Department。那么System.out.println(emp.getDepartment().getClass());可以看到,得到的并不是Dempartment对象,而是一个命名比较奇怪的Department子类对象(这个继承类是由Hibernate自动产生的,故domain都不能够为final型)。如果在Session关闭后,调用emp.getDeparment().getId()会报LazyInitializedException异常。在默认情况下,只能够在Session未关闭时使用。

又或者,加上一句Hibernate.initialize(emp.getDepartment());初始化对象,那么,也就可以在Session关闭后使用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值