我看到有一种策略可以跨不同数据库进行一对一的域对象映射。但我试图将两个域对象关联在不同的数据源中,并且具有一对多的关系。
class DomainA {
// default data source
}
class DomainB {
static hasmany = [domainA: DomainA]
static mapping = {
datasource 'ds2'
}
}
有关如何使这项工作的任何建议?或者解决方法?
答案 0 :(得分:0)
找到了解决方案,它运作良好。解决方案是在您拥有的架构中创建连接表。 E.g。
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
}
}