我想请教一下hibernate的延迟加载在webapp应用中能应用在哪些地方。web应用中页面取数据都是一次加载完成。有操作的话都是另外一次请求,如何应用延迟加载。
你举得例子不对,你举得那个例子,直接去数据库取user就行了
延迟加载.lazy=true
例如User和Dept吧,多对一。
from User可以查询User表
页面上${u.dept.name}可以输出部门名称,如果不写u.dept,就不会执行dept的查询。
需要用OpenSessionInView。
延迟加载完全是为了解决效率问题
例如 user class
class的bean里面肯定包含user
就是说你去数据库查数据的时候3班你查出来了,因为你配置了和user的关系,hibernate会帮你查出class下的所有user
可以通过lazy=true配置延迟加载
也就是只有你用到user的时候才会去数据库单独取一次
数据用到的时候,代理才会去真正的发送sql,取数据。
你有这个疑问说明你根本不知道延迟加载的概念,
存起来,何必呢?如果存起来,又使用了延迟加载,那和你直接去数据库取有区别吗?