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