为连接到另一个域的复合主键的外键创建Grails Domain映射



如何将Grails Domain的两列(也是它的复合主键)引用到另一个Domain类的复合主键?在本场景中,CEOAgencyAgencyBranch是一一对应的关系。

我可以很容易地映射CEOAgency,因为它只涉及一列:CEO.id == Agency.ceo_id。但是我不能使用这两列将Branch映射到Agency: Agency.id == Branch.agency_id and Agency.main_branch_id == Branch.branch_id

class CEO {
    .....
}
class Agency {
    .....
    CEO ceo
    Branch mainBranch
    static mapping = {
        .....
        ceo column: 'ceo_id'
        /* Tried using this mapping but it doesn't work
        mainBranch {
            agencyId column: 'id',
            branchId column: 'main_branch_id'
        }
        */
        .....
    }
}
class Branch {
    .....
    Integer agencyId
    Integer branchId
    static mapping = {
        .....
        id composite: ['agencyId', 'branchId']
        .....
    }
    static constraints = {
        .....
        branchId unique: 'agencyId'
        .....
    }
}

请尝试对代理类使用以下技术:

 class Agency {
     .....
     CEO ceo
     Branch mainBranch
     static mapping = {
     .....
     ceo column: 'ceo_id'
     columns {
        mainBranch {
            column name: "FirstName"
            column name: "LastName"
        }
     }
 .....
 }

参考在这里-第6.5.2.5节复合主键

最新更新