【问题标题】:Grails: One Database and more than one applicationGrails:一个数据库和多个应用程序
【发布时间】:2012-04-08 07:46:55
【问题描述】:

我有基于 Grails GORM 的应用程序。一个 Web 服务和一个网站都在不同的端口上运行并共享公共数据库和表。
我所做的是为具有相同字段和域类名称的两个应用程序创建域类。例如具有 userNamepasswordRegistration 表字段。可以通过网络服务注册,也可以从网站注册。
我当前的应用程序运行良好……但它是一个可行的解决方案吗……?

谢谢,
病毒

【问题讨论】:

  • 为什么要这样做?如果它们具有相同的字段和相同的功能,它们不是副本吗?

标签: grails grails-orm


【解决方案1】:

您可能会遇到竞争/锁定情况,但我已经多次看到这种情况发生。我唯一的建议是不要维护单独的域类。将公共域类放入插件中,并在两个应用程序中安装所述插件。

我见过的另一种模仿您的方法的常见方法是部署一个独立于 admin/cms 的面向客户的应用程序。两者都与同一个数据库通信,它们只是在不同的 tomcat 实例中运行。

【讨论】:

  • 请注意,将单独的应用程序部署到 cloundfoundry 具有挑战性。 stackoverflow.com/questions/8684429/…
  • @BradRhoads 将单个应用程序部署到 Cloudfoundry 具有挑战性
  • @Gregg 谢谢,但是对于您在其中制作插件的解决方案的第一个选项,我应该在我的应用程序还是在我的插件中配置我的 datasource.groovy..?
【解决方案2】:

您可以创建一个单独的 Gradle 应用程序,该应用程序使用仅包含公共域类的 GORM 依赖。在 src/main/groovy/bla/xyz 中创建这些类(POJO),用

注释它们

grails.gorm.annotation.Entity

这将使 GORM 将您的 POJO 识别为域类。

构建此应用程序,发布它并将其用作您对其他 Grails 应用程序的依赖项。

在全力以赴之前,请尝试使用一个 POJO 类。将其发布到您的本地 m2 存储库中,并将其用作 grails 应用程序的依赖项,检查一下。

希望这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 2017-03-04
    • 2020-09-04
    • 1970-01-01
    相关资源
    最近更新 更多