我目前正在学习域驱动开发(DDD)。在看了一些教程之后,我想把我的旧学校项目从clasic SOA建模到DDD。我确定了3个有界的背景(目前):秘书管理(学生和教授的CRUD),教授任务(为学生创建任务)和学生任务(上传任务解决方案)。名称未正确选择,这只是应用程序的概述。
重点是将有2个不同的教授实体:一个在管理层,其中包含姓名,地址,电子邮件和其他内容,另一个在教授任务中,其中包含id和名称。
我的问题是如何使用hibernate和JPA对此进行建模?我正在考虑创建一个包含应用程序中所有实体的包,使用JPA注释进行注释,每个包含所有必需的字段,并且在每个有界上下文中都要包含其他类,这些类只包含该有界上下文中必需的字段。存储库必须从该特定类映射到JPA实体。有没有更好的解决方案?
谢谢。
答案 0 :(得分:1)
不要在有界上下文之间共享你的持久性。您可以在应该通过设计解耦的内容上创建耦合。
如果你有“这是同一件事”的感觉 - 重新考虑你的背景边界。可能是你需要合并它们。如果有什么东西抵抗分裂,你可能会破坏凝聚力,但你的有限背景必须具有高凝聚力。
通常,不同的有界语境即使在现实生活中相同的事物上也会有不同的关注点。在这种情况下,具有相同名称的域对象看起来会完全不同。这基本上就是为什么它们被称为“有界上下文”,因为词语在不同的语境中有不同的含义。