首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >负载延迟的MVC

负载延迟的MVC
EN

Stack Overflow用户
提问于 2013-01-16 14:04:46
回答 2查看 3.9K关注 0票数 7

纠正我,如果这是一个确切的重复,我知道这个话题经常讨论,但找不到一个明确的答案。

问题:

在MVC webapp中处理Hibernate对象的最佳实用解决方案是什么?

详细信息:

我正在使用Hibernate,并希望在可能的情况下利用延迟加载。

我正在一个MVC风格的MVC应用程序中工作。

我讨厌延迟加载初始化异常。

我讨厌在事务之间重新附加Hibernate对象。

The options:

  1. 急切地加载所有
    • 解决了延迟初始化问题,但使查询更大。

  1. 使用“视图中的开放会话”概念
    • 我喜欢它的简单
    • 对象仍然需要重新附加,并且在AJAXy设置中非常频繁。
    • 每个请求都会打开一个会话。

  1. 离开事务之前我需要的“触摸”项
    • 充其量似乎很脆弱..。而且单调乏味

  1. 创建不同、简化、“分离”的对象,这样视图就不会看到真正的Hibernate对象
    • 这些可能比完整的Hibernate对象更简单,因此它不像模型的全部急切负载
    • 我在一些地方听过这样的建议,但似乎更多的责任/代码/工作

  1. 当我想要与Hibernate对象交互时,打开一个会话。
    • 这可以很好地封装在Service层中,但有时看起来有些过分。我想要hibernateObject.getRelatedObjects(),但我需要说一些像springService.getRelatedObjects(hibernateObject)那样的话

我是不是遗漏了什么?

我想过了吗?

我是不是想错了?

PS:

对于web框架,我使用的是ZK,但并不需要ZK特定的答案。

我也在使用Spring,并且对Spring的具体答案很酷,因为它是如此普遍。

EN

Stack Overflow用户

回答已采纳

发布于 2013-01-16 14:11:34

使用4-ish -不要在视图中使用开放会话,不要让hibernate实体一直泡到视图,而是让转换器在hibernate实体和域对象之间进行转换,或者根据您的工作方式进行“视图bean”转换。

我认为Hibernate实体只是一种持久化策略,而不是域模型或UI表示。

票数 5
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14360216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档