论坛首页 Java企业应用论坛

Hibernate的Lazy loading机制到处扩散对系统架构带来的不良后果

浏览 2742 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-05-10  
看了以前的帖子
http://www.iteye.com/post/282606
也结合自己目前遇到的问题
我认为Hibernate Lazy loading(主要指使用OpenSessionInView)机制是不能用在稍微复杂的企业系统中的
它看似方便,走了捷径,其实破坏了固有的分层结构,把本该属于持久层的机制四处传播,同时也带来了很多风险,会影响其他的功能的使用
主要体现在
1. Web remoting
2. Cluster环境session对象序列化的问题(现在越来越多的框架会根据一顶的策略,把状态维护在session中)
3. xml-java object serialize和Deserialize
4. 将来的其它RIA技术

所以,从系统总结架构考虑,我是坚决杜绝使用将lazy机制扩散到service层以外的。
我的建议是web层存在一个剪裁过的VO,与Service层的PO完成自动数据的复制(手工 or 基于元数据描述)

但不可否认,lazy loading在适当的场合还是能发挥其作用的
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics