我想使用插件在多个应用程序之间共享一堆域类和控制器。每个应用程序将使用自己的数据库。我希望插件中的域类将它们的数据存储在与应用程序相同的数据库中。
我该怎么做?
答案 0 :(得分:2)
插件基本上被合并到包含它的应用程序中,因此它使用应用程序中的设置。这包括DataSource。实际上没有办法在域类中指定它使用的数据库。从技术上讲,这在2.0中是不正确的,因为它可以选择使用多个数据源中的哪一个,但选择来自应用程序定义的数据源。
答案 1 :(得分:0)
您的插件可以更改DataSource.groovy文件,因此您可以尝试从配置中读取应用程序名称并相应地设置数据源。也许它看起来像这样:
production {
dataSource {
jndiName = "java:comp/env/jdbc/${grailsApplication.metadata.'app.name'}"
}
}
答案 2 :(得分:0)
在Grails 3中,如果要在多个应用程序之间共享域类,可以将域类放在插件中。
然后,您可以将该插件添加为多个应用程序的依赖项。
您的应用程序将可以访问这些域类。
数据源在使用插件的顶级应用程序中设置。
因此,如果您在顶级应用程序中只有1个数据源设置,则当您执行此操作时,将在输出的SQL中创建插件域类 grails schema-export命令。