Hibernate 性能调优 属性延迟加载

转http://www.ibm.com/developerworks/cn/java/j-lo-hibernate3/

深度探索四(Hibernate 性能调优)

我们知道 Hibernate 3 去掉了 find 方法,之所以去掉也是考虑到性能问题。因为 find 方法对于缓存只写不读,性能低下,如果您有用到 Hibernate 3 以前的版本,要注意一下。

Hibernate 3 以前版本在普通情况下持久化对象时会把该对象的属性全都加载进来,即使有些大对象我们用不到。因为延迟加载属性只能作用在类级别,Hibernate 3 允许我们在属性级别上应用延迟加载功能,这样就可以有选择的加载对象的属性了。设置也很简单,只需在属性的 get 方法上加入 @Basic(fetch = FetchType.LAZY) 这行代码就可以了,然后我们需要增强该类,通过 Ant 脚本来加强就可,很简单,就不给出代码了,要不然加入的注释将被忽略。 如果你使用 hbm 格式来映射文件的话,那么在属性行加入 lazy=true 即可。 以上讲的是属性级别的延迟加载,类级别的延迟加载大家也要灵活应用,毕竟它对提升性能还是很有帮助的。

我们上面也提到了关于大数据量缓存的问题,提到对于那些不常用的数据要及时清理缓存,我们可以用 session 的 clear 或 evict 方法,养成好习惯,省着一旦出现性能瓶颈时盲目。对于监控性能的一些工具大家可以自己研究一下,比如 loadrunner 等都是很不错的。

猜你喜欢

转载自breezylee.iteye.com/blog/1490818