首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对大型Hibernate模型进行分区以管理模式依赖关系

对大型Hibernate模型进行分区以管理模式依赖关系
EN

Stack Overflow用户
提问于 2010-09-21 06:00:20
回答 1查看 166关注 0票数 1

我们正在考虑将hibernate表拆分成包或域(发票、销售、..etc),主要是为了解决依赖管理问题。

当然,它不会整齐地中断,所以我们不确定如何处理跨域的关系。如果有一个新的实体注解就好了,但与此同时,一个想法是制作模型的多个副本,其中关系的注解方式有一些变化,以“剪掉松散的尾巴”。这些修改后的授权可能需要在它们不属于的其他模型中设置为“只读”。此外,我们将继续使用现有的完整模型一段时间,因为我们过渡到使用较小的应用程序。

因此,例如,大多数表应该完全存在于一个或另一个模型中;但是,如果Domain1.Table1与Domain2.Table2相关,那么您将在另一个域中创建每个表的只读副本。副本将其域中的其他关系更改为“死胡同”(可能通过将关系链接替换为整数fk引用属性)。

重点是,我们希望有一些方法来管理我们的maven构建,以便当有人更改表上的属性时,我们已经声明了对该域模型的依赖,这样我们就可以减少需要重新构建的应用程序的数量。(我们有紧凑的部署停机窗口)。

哦,所有的域都必须使用相同的java包才能与我们的遗留EJB持久性工具兼容。

这就是我们的想法。有什么建议/反馈/评论吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-01-22 05:00:09

您建议将相关表的实体复制到所需的域(而不是它的域)中,然后将它自己的域依赖项更改为“死胡同”。整数FK值,如有必要,可用于执行查找。

我的建议是,你应该在每个域的边缘这样做,并且不要复制任何东西。因此,如果Domain1.Table1与Domain2.Table2相关,那么它只有一个FK,int字段可以称为table2Id。这将在每个域的边缘创建死胡同,而不需要交叉和复制。

不过我还是得问一下。

你确定你有多个域名吗?

你的问题的根源似乎来自于这样一个事实,即你的数据是相关的,这向我表明它们是同一领域的一部分。例如,您将销售和发票作为单独的域,但它们可能都共享客户引用。这一切感觉都是属于我的。一些项目/行业的领域很大,为了方便和简单而拆分它们,最终通常会被证明是错误的,并经常增加意想不到的复杂性。例如,如果你需要做一个销售查询,它应该有一个发票的引用,但是现在你必须做一个单独的发票查询,这使得你的API的客户端的使用有点重量级。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3755855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档