我们有一个使用JSP
,Servlet
和Hibernate
的网络应用程序。我们得到的设计模式是MVC,意思是,
JSP -> Servlet -> Beans (POJO)
现在的问题。一旦开发人员在POJO中插入了hibernate查询,hibernate会话创建等。现在在这些POJO中,有getAllEmployees()
,getAllAgents()
等方法。这使我们很难更改数据库表(我们使用MySQL Workbench
手动处理数据库)并使用自动重新生成POJO的工具,因为这些方法将丢失。
现在有2个参数。一个是维护hibernate查询,POJO中的会话是一个很好的工作,因为它看起来像纯粹的MVC。另一个参数是将hibernatre代码移动到Servlets
并像bean一样调用POJO,只是为了设置和获取值。
我们以前没有在Hibernate工作过。从2以上开始,在hibernate中编写hibermnate代码的首选地点是什么?
最后,请注意我们对Spring或其他框架不感兴趣,我们使用纯JSP和Servlet与Hibernate
答案 0 :(得分:1)
或许,您需要的是另一层抽象。由于你的pojos在新的迁移后重新创建,你不应该在其中插入代码(我不同意这种方法,但这只是我的意见:-))
JSP -> Servlet -> NewLayer -> POJO
我不知道你在哪里制定业务规则,但在这种情况下,它将出现在" NewLayer"它将由一个" hibrid" service和dao的图层。
我建议这些读数重新考虑您的实际架构:
https://softwareengineering.stackexchange.com/questions/220909/service-layer-vs-dao-why-both