你在 POJO 中编写 Hibernate 代码吗?
Do you write Hibernate code inside POJOs?
我们有一个使用 JSP
、Servlet
和 Hibernate
的 Web 应用程序。我们得到的设计模式是MVC like,也就是说,
JSP -> Servlet -> Beans (POJO)
现在是问题。曾经有开发人员在 POJO 中插入了休眠查询、休眠会话创建等。现在在这些 POJO 中,有 getAllEmployees()
、getAllAgents()
等方法。这使得我们很难更改数据库表(我们手动处理数据库,使用 MySQL Workbench
)并使用自动重新生成 POJO 的工具,因为这些方法将丢失。
现在有 2 个参数。一是在 POJO 中维护休眠查询和会话是一项很好的工作,因为它看起来像纯 MVC。另一个论点是将 hibernatre 代码移动到 Servlets
并像调用 beans 一样调用 POJO,仅用于设置和获取值。
我们之前没有使用过 Hibernate。从上面2,说到hibernate,写hibermnate代码的首选地方是什么?
最后,请注意我们对 Spring 或其他框架不感兴趣,我们使用纯 JSP 和 Servlet with Hibernate
可能,您需要的是另一层抽象。由于您的 pojo 是在新迁移后重新创建的,因此您不应在其中插入代码(我不同意这种做法,但这只是我的意见:-))
JSP -> Servlet -> NewLayer -> POJO
我不知道您将业务规则放在哪里,但在这种情况下,它将在 "NewLayer" 中,其中包含 service and dao 的 "hibrid" 层。
我会推荐这些读物来重新思考您的实际架构:
https://softwareengineering.stackexchange.com/questions/220909/service-layer-vs-dao-why-both
Responsibilities and use of Service and DAO Layers
我们有一个使用 JSP
、Servlet
和 Hibernate
的 Web 应用程序。我们得到的设计模式是MVC like,也就是说,
JSP -> Servlet -> Beans (POJO)
现在是问题。曾经有开发人员在 POJO 中插入了休眠查询、休眠会话创建等。现在在这些 POJO 中,有 getAllEmployees()
、getAllAgents()
等方法。这使得我们很难更改数据库表(我们手动处理数据库,使用 MySQL Workbench
)并使用自动重新生成 POJO 的工具,因为这些方法将丢失。
现在有 2 个参数。一是在 POJO 中维护休眠查询和会话是一项很好的工作,因为它看起来像纯 MVC。另一个论点是将 hibernatre 代码移动到 Servlets
并像调用 beans 一样调用 POJO,仅用于设置和获取值。
我们之前没有使用过 Hibernate。从上面2,说到hibernate,写hibermnate代码的首选地方是什么?
最后,请注意我们对 Spring 或其他框架不感兴趣,我们使用纯 JSP 和 Servlet with Hibernate
可能,您需要的是另一层抽象。由于您的 pojo 是在新迁移后重新创建的,因此您不应在其中插入代码(我不同意这种做法,但这只是我的意见:-))
JSP -> Servlet -> NewLayer -> POJO
我不知道您将业务规则放在哪里,但在这种情况下,它将在 "NewLayer" 中,其中包含 service and dao 的 "hibrid" 层。
我会推荐这些读物来重新思考您的实际架构:
https://softwareengineering.stackexchange.com/questions/220909/service-layer-vs-dao-why-both
Responsibilities and use of Service and DAO Layers