首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-11-06 
Hibernate的Lazy loading机制到处扩散对系统架构带来的不良后果看了以前的帖子http://www.iteye.com/post/

Hibernate的Lazy loading机制到处扩散对系统架构带来的不良后果
看了以前的帖子
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在适当的场合还是能发挥其作用的

热点排行