hibernate的懒加载

来源:互联网 发布:手机淘宝网页版登录 编辑:程序博客网 时间:2024/06/03 13:40

懒加载

当我们查询一个对象的时候,在默认情况下,返回的只是该对象的普通属性,当用户去使用对象属性时,才会向数据库发出再一次的查询。这种现象称为lazy现象。

如果在关闭session之后继续查询对象属性则会报错。


解决方法:

①显示初始化:Hibernate.initized(代理对象)

②修改对象关系文件:将对象属性的lazy设置为false

③通过过滤器(web项目)openSessionInView


关于懒加载的性能问题

使用懒加载并不会提高性能,因为hibernate的对象关系映射会拖累sql性能,所以才会想出懒加载来弥补,因此使用懒加载并不会提高性能,总体性能不会下降就万幸了。


使用懒加载的注意点

取消懒加载时若使用不当会使性能急剧下降,不要在<set/>里的<one-to-many>取消懒加载,否则会在查询时产生大量的sql语句,会拖累性能;尽量在<many-to-one>的many一方取消懒加载。