有没有办法在 Grails 中配置对数据库的两个不同模式的访问?

Posted

技术标签:

【中文标题】有没有办法在 Grails 中配置对数据库的两个不同模式的访问?【英文标题】:Is there a way to configure in Grails access to two different schemas of the database? 【发布时间】:2009-12-22 10:12:01 【问题描述】:

我需要从 Grails 访问不同模式中的几个不同表。用户对所有表都有访问权限,但是,当我尝试将域类映射到表时,我找不到完成它的方法。

我尝试过以这种方式映射域:

  static mapping = 
        table 'SCHEMA2.TABLE'
        //Table columns and mapping
        ...
    

我还可以更改 DataSource 文件上的默认架构,但在这种情况下,我只访问两个架构之一

  hibernate.default_schema = 'schema2'

我们已经使用别名来从 schema1 访问 schema2 中的表,但我认为应该有一种方法可以做到这一点,而不必使用 Hibernate 定义所有映射(我真的不喜欢 XML 文件)

【问题讨论】:

那么你为什么要使用两种不同的方案呢?为什么不像两个不同的数据库一样处理它? 这是一个遗留数据库。我更喜欢将它们作为同一个数据库进行访问,因为它们实际上是。 【参考方案1】:

我知道这个问题很老了,但以防万一:

您可以在域类映射部分执行此操作:

static mapping = 
    table name: "book_catalog", schema: "dbo", catalog: "CRM"

grails guide

【讨论】:

【参考方案2】:

你见过DataSources 插件吗?我相信它可以满足您的需求 - 允许配置多个数据库并将域对象映射到不同的数据库。

我以为我在论坛上看到了一些关于 1.2 现在无法运行的电子邮件 - 一定要通读论坛以了解其他人可能遇到的问题。

【讨论】:

以上是关于有没有办法在 Grails 中配置对数据库的两个不同模式的访问?的主要内容,如果未能解决你的问题,请参考以下文章

如何从grails 3.1.8中的外部文件加载数据源配置?

我可以在没有数据源的情况下配置 Grails 吗?

您可以在没有角色和权限的情况下将 Shiro 用于 Grails 吗?

动态连接到 grails 中的数据库

Grails REST 用户身份验证

恢复 Grails url 映射