grails - 跨多个数据源的GORM一对多关系

标签 grails gorm

我看到有一种策略可以针对不同数据库之间的域对象进行一对一映射。但是我试图关联两个位于不同数据源中并具有一对多关系的Domain对象。

class DomainA {
    // default data source
}

class DomainB {
    static hasmany = [domainA: DomainA]

    static mapping = {
        datasource 'ds2'
    }
}

关于如何进行这项工作的任何建议?还是解决方法?

最佳答案

找到了解决方案,效果很好。解决方案是在您拥有的架构中创建一个联接表。
例如。

class DomainA {
    // default data source
}

class DomainB {
    List<DomainA> domainAList
    static transients = ['domainAList']
    static hasmany = [domainAIds: Integer]

    static mapping = {
        datasource 'ds2'
        domainAIds joinTable: [name: 'DOMAINB_DOMAINA', key: 'DOMAINB_ID', column: 'DOMAINA_ID']
    }

    List<DomainA> getDomainAList(){
        domainAList = domainAIds.collect { DomainA.get(it) }
        domainAList 
    }
}

关于grails - 跨多个数据源的GORM一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33486696/

相关文章:

grails - 如何正确使用一对多关系中的mappedBy

grails - 使用Grails分配域类ID异常

sql-server - Grails 3-使用SQL Server地理类型?

grails - HQL查询加入彼此一无所知的两个域

grails - Spring 安全+ 404错误

java - Grails 无法呈现插件中包含的 GSP

grails - IntelliJ,Grails - 我删除了一个文件,但没有任何效果

validation - Grails命令对象未验证

grails - 涉及集合属性的搜索条件

grails - 创建后无法运行grails插件。获取错误o.s.boot.SpringApplication应用程序启动失败