gpt4 book ai didi

java - 持久性逻辑应该放在域模型 bean 中还是只放在 DAO 中?

转载 作者:行者123 更新时间:2023-11-30 06:36:56 26 4
gpt4 key购买 nike

谁能解释一下这有什么优点和缺点?我的意思是,不使用 ORM 框架/JPA 规范。

它涉及实体之间的多对多和多对一关系。想象实体关系

teacher - student (many-to-many)

doctor - patient (one-to-many)

我的问题是,我们是否可以将 getPatients() 方法放在 Doctor bean 或 getStudents() 放在 Teacher bean,或者它是否应该是 POJO,所有这些东西都应该放在 DAO 层。

我经常看到第一种方法用于对象模型 bean 扩展类,为它们提供对服务/持久性 Facades 的访问,或者由 spring 注入(inject)它们等。它的优点是,可以调用医生.getPatients();实际上在应用程序的任何地方,而不是从 DAO 中获取结果。

是否存在第一种方法方便的情况?因为我看到很多案例都是这样做的,我想知道它是否有目的,或者是业余主义还是旧风格。

最佳答案

你可以做任何你想做的事,但无处不在的模式是 DAO 模式。 重点是separate your concerns . 如果您有域对象,那么您很可能在其中包含了一些业务逻辑。你真的想把持久化逻辑放在业务逻辑之上吗?您的应用程序将变得更难维护,更难(容易)测试,并且会出现更多错误。一旦您做出了一个有问题的设计决定,肯定会有更多人效仿……

关于java - 持久性逻辑应该放在域模型 bean 中还是只放在 DAO 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101879/

26 4 0