【发布时间】:2013-06-07 16:35:27
【问题描述】:
我是 Grails 的新手,在三个不同的应用程序之间共享我的域模型时遇到了一些问题。其中两个需要持久化模型对象,第三个不需要。
似乎通常的管理方法是创建一个插件并将域类放入其中。问题在于域类包含特定的持久性信息,并且每个应用程序持久化对象的方式存在一些差异。
此外,其中一个应用程序根本不需要保留这些对象,因为它使用来自另一个应用程序的 JSON Web 界面检索和删除它们。当我在 dbCreate = "create-drop" 模式下运行此应用程序时,Grails 会在启动时为这些类创建不需要的表。
我认为所有问题都来自于在域类中混合模型和持久性特定信息。 我该如何解决?有没有更好的方法来共享域模型?
【问题讨论】:
-
就个人而言,我认为您必须解释为什么不同的应用程序需要以不同的方式持久化对象。此外,如果您是从 JSON Web 服务创建它们,模型是否也不存在(第 4 位)?请用实际例子说明情况。
-
两个应用程序之间的持久性差异是微妙的。某些应用程序可能希望使用延迟检索或在父表中嵌入类。原因是其中一个将充当另一个应用程序中对象的缓存。这些差异尚未定义,但目标是允许它们具有独立的配置。
-
域对象将用于两个应用程序中的持久性以及作为 JSON 的序列化/反序列化。后者是最成问题的情况,因为如果我别无选择,我可以使用相同的持久性配置,但我不希望在不需要持久性的应用程序中创建不必要的表(或持久性暗示的任何开销) .
-
我不确定为什么会有任何东西会创建不必要的表。任何处于“生产”状态的 Grails 应用程序都应该使用数据库迁移。
dbCreate设置仅用于开发。
标签: grails persistence grails-plugin