2015-11-02 22 views
0

我看到有一種策略可以針對跨不同數據庫的域對象進行一對一映射。但是我試圖關聯兩個在不同數據源中並且具有一對多關係的Domain對象。GORM跨多個數據源的一對多關係

class DomainA { 
    // default data source 
} 

class DomainB { 
    static hasmany = [domainA: DomainA] 

    static mapping = { 
     datasource 'ds2' 
    } 
} 

關於如何使這項工作的任何建議?還是解決方法?

回答

0

找到了解決方案,它工作得很好。解決方案是在您擁有的模式中創建連接表。 例如

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