纠正我,如果这是一个确切的重复,我知道这个话题经常讨论,但无法找到明确的答案。MVC With Lazy Loading
问题:
什么是一个Web应用程序的MVC处理休眠对象的最佳实践的解决方案?
细节:
我使用Hibernate和想去的地方可能利用延迟加载。
我正在使用MVC风格的webapp。
我讨厌获取懒加载初始化异常。
我讨厌在事务之间重新挂接Hibernate对象。
选项:
- 渴望负载一切
- 解决了这一延迟初始化的问题,但让我查询更大
- 使用一些 '打开会话中查看' 概念
- 我爱它的简单性 个
- 对象仍然需要重新连接,并在AJAXy设置,相当频繁
- 会话离开交易
- 在似乎站不住脚之前打开的每个请求
- “触摸”的项目,我需要最好的..和繁琐
- 创建不同的,简化的,“超脱”对象,所以认为不会看到真正的Hibernate对象
- 钍ESE可能比完整的Hibernate对象更简单,所以它不喜欢这种型号
- 我听说过这个建议的地方,但似乎只是更多的责任/代码的完全急切装载/工作
- 打开会话当我想与Hibernate对象进行交互时。
- 这可以很好地包装在Spring服务层中,但有时似乎过多。例如:我想
hibernateObject.getRelatedObjects()
但需要说类似springService.getRelatedObjects(hibernateObject)
- 这可以很好地包装在Spring服务层中,但有时似乎过多。例如:我想
我这么想吗?
我有过度思考的东西吗?
我有没有想过的事情?
PS:
对于我使用ZK但不真想ZK具体的答案Web框架。
我也使用Spring,并且很酷,并且Spring特定的答案是无处不在的。
干杯Bedwyr,我想我会采取这种做法。这是更多的代码,但视图和模型的分离应该值得。 –
我同意这个答案,并赞成它,只是想添加一个代码,你可能会发现得心应手。这是一台可变深度复印机,它依赖于Spring,但比像Dozer这样的完整贴图解决方案的重量更轻。 https://gist.github.com/thinkbigthings/5488327 – Jay
此处还有一个Hibernate unproxifier:https:// gist。github.com/thinkbigthings/5141813 – Jay