纠正我,如果这是一个确切的重复,我知道这个话题经常被讨论,但无法找到一个明确的答案。
问题:
什么是一个Web应用程序的MVC处理休眠对象的最佳实践的解决方案?
细节:
我使用Hibernate和想去的地方可能利用延迟加载。
我在一个MVC Web应用程序样式的工作。
我讨厌越来越懒加载初始化例外。
我讨厌不得不重新安装事务之间的Hibernate对象。
选项:
- 贪婪加载一切
- 解决了延迟初始化的问题,但让我查询更大
- 使用一些“打开会话视图中的”概念
- 我喜欢它的简单性
- 对象仍然需要重新连接,并在AJAXy设置,屡有
- session打开时为每个请求
- “触摸”的项目我离开交易之前需要
- 似乎站不住脚充其量..和繁琐
- 创建不同的,简化的,“超脱”对象,所以认为不会看到真正的Hibernate对象
- 这可能是比完整的Hibernate对象更简单,所以它不喜欢这种型号的满负荷跃跃欲试
- 我听说过这个建议的地方,但似乎只是更多的责任/代码/工作
- 当过我想要使用Hibernate对象交互打开一个会话。
- 这可以在Spring服务层包裹起来非常好听,但有时似乎过高。 例如:我想
hibernateObject.getRelatedObjects()
但需要说类似springService.getRelatedObjects(hibernateObject)
- 这可以在Spring服务层包裹起来非常好听,但有时似乎过高。 例如:我想
我缺少的东西吗?
我有过想的东西呢?
有我在,以为事情?
PS:
对于Web框架我使用ZK,但真的不希望ZK具体的答案。
我还使用Spring和不介意让一个Spring明确的答案,因为它是如此的普遍。