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
}
}