Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails GORM跨多个数据源的一对多关系_Grails_Gorm - Fatal编程技术网

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

Grails GORM跨多个数据源的一对多关系,grails,gorm,Grails,Gorm,我看到有一种跨不同数据库的域对象一对一映射策略。但我试图将两个位于不同数据源中且具有一对多关系的域对象关联起来 class DomainA { // default data source } class DomainB { static hasmany = [domainA: DomainA] static mapping = { datasource 'ds2' } } 有没有关于如何使这项工作的建议?还是解决方法?找到了解决方案,效果非

我看到有一种跨不同数据库的域对象一对一映射策略。但我试图将两个位于不同数据源中且具有一对多关系的域对象关联起来

class DomainA {
    // default data source
}

class DomainB {
    static hasmany = [domainA: DomainA]

    static mapping = {
        datasource 'ds2'
    }
}

有没有关于如何使这项工作的建议?还是解决方法?

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

类域a{
//默认数据源
}
类域B{
列表域主义者
静态瞬态=['DomainList']
静态hasmany=[domainAIds:Integer]
静态映射={
数据源“ds2”
domainAIds joinTable:[名称:'DOMAINB_DOMAINA',键:'DOMAINB_ID',列:'DOMAINA_ID']
}
列表getDomainList(){
domainAList=domainAIds.collect{DomainA.get(it)}
领域主义者
}
}
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 
    }
}