有人可以解释一下这样做的优点和缺点吗?我的意思是,不使用 ORM 框架/JPA 规范。
它涉及实体之间的多对多和多对一关系。想象实体关系
teacher - student (many-to-many)
或
doctor - patient (one-to-many)
我的问题是,我们是否可以将 getPatients() 方法放在 Doctor bean 中,或者将 getStudents() 方法放在 Teacher bean 中,或者是否应该将其放在 POJO 中,并且所有这些东西都应该放在 DAO 层中。
我经常看到第一种方法用于以下情况:对象模型 bean 扩展类,为它们提供对服务/持久化 Facades 的访问权限,或者由 spring 注入(inject)它们等。它的优点是,可以调用医生.getPatents();实际上在应用程序中的任何地方都可以使用,而不是从 DAO 获取结果。
在某些情况下第一种方法比较方便吗?因为我看到很多情况都是这样做的,我想知道它是否有目的,或者是业余或旧风格。
最佳答案
你可以做任何你想做的事情,但普遍存在的模式是 DAO 模式。 重点是 separate your concerns .如果您有一个域对象,那么很可能其中有一些业务逻辑。您真的想将持久性逻辑放在业务逻辑之上吗?您的应用程序将变得更难维护,更难(容易)测试,并且有更多错误。一旦你做出了一项有问题的设计决定,更多的决定就会随之而来......
关于java - 持久性逻辑应该放置在域模型 bean 中还是仅放置在 DAO 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101879/