这是一个奇怪的要求,如果这是可能的话,我正在考虑它。第二个想法是否是一个可行的设计决定。
以下是该方案:
我们有一个由160个表组成的数据库。 我们在遗留数据库之上创建了一个Grails ORM插件。
现在我们有不同的应用程序(插件)将使用这个orm插件。
每个应用程序都可以独立运行,也可以与其他应用程序结合使用。
每个应用程序主要使用插件中设计的完整ORM模型的子集。
为了独立运行应用程序,我只想创建一个独立的数据库,其中包含应用程序所需的表,而不是160个表的整个数据库。但是由于独立应用程序依赖于上面定义的ORM插件,是否可能只有一个表的子集,或者我是否要创建完整的数据库模式?
如果有任何进一步的细节需要了解这个问题,请告诉我。
谢谢, Alam Sher
答案 0 :(得分:0)
我建议将ORM插件拆分成单独的“sub-orm”插件。这些“sub-orm”插件当然可能依赖于其他“sub-orm”插件。 “sub-orm”插件之间的分界线应该由业务领域定义。
然后,每个“部分”应用程序可能依赖于所需的“sub-orm”插件,这些插件在其范围内是必需的。 在这种情况下,传递依赖性解析很有价值。
一般情况下,如果多个不同的应用程序同时访问同一个数据库,则存在从Hibernate获取锁定异常的风险。
答案 1 :(得分:0)
您可以在src/groovy
文件夹中声明ORM映射的域类,因此不会映射插件中的任何内容,然后在最终应用程序中扩展必要的类。将使用src
中声明的映射。
这增加了额外的复杂性,但确实如此。