gpt4 book ai didi

java - 在 MVC 架构的 Controller 中打开 hibernate session 是个好主意吗?

转载 作者:行者123 更新时间:2023-12-01 15:15:20 28 4
gpt4 key购买 nike

我有一个非常复杂的域实体。我想对所有关联进行延迟加载。所以场景是这样的:

1.获取我的业务逻辑的实例。

2.从业务中获取对象o。

3.要求o给我其他关联的对象。

4.准备 View 。

为了摆脱延迟加载其他对象时有关关闭 session 的 hibernate 异常,我想到了在 Controller 中打开和关闭整个 session 的想法。这是不是一个好主意?有没有更好的解决方案?

谢谢

最佳答案

View 中的 session 是 bad practice .

以下是通常用于解决此问题的层的建议:

Controller

  • Controller 只关心处理网络请求,将它们解释为您的服务将处理的对象,并将服务结果作为网络响应返回。我通常在每个 Controller 方法中只有一个事务服务方法调用,更喜欢在单个事务中保留一个 Controller 操作的所有数据访问。

服务

  • 服务层只关心从 Controller 接受数据,(从数据层)获取执行其操作所需的数据,并返回有意义的结果。该服务应完全加载 Controller 所需的所有延迟加载实体。这里的服务方法是事务性的,不会有延迟加载问题,并且您可以组合多个 DAO 的结果。这样 DAO 就不需要 know about each other .

数据访问

  • data access layer只关心持久性(CRUD),允许通过过滤、排序等方式访问数据。

关于java - 在 MVC 架构的 Controller 中打开 hibernate session 是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11686293/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com