为连接到另一个域的复合主键的外键创建Grails域映射
如何将Grails域的两列(也是它的复合主键)引用到另一个域类的复合主键?在这种情况下,为连接到另一个域的复合主键的外键创建Grails域映射,grails,groovy,Grails,Groovy,如何将Grails域的两列(也是它的复合主键)引用到另一个域类的复合主键?在这种情况下,CEO到机构和机构到分支机构之间存在一对一的关系 我可以轻松地将CEO映射到Agency,因为它只涉及一列:CEO.id==Agency.CEO\u id。但我无法使用这两列将分支机构映射到代理机构:Agency.id==Branch.Agency\u id和Agency.main\u Branch\u id==Branch.Branch\u id class CEO { ..... } class
CEO
到机构
和机构
到分支机构
之间存在一对一的关系
我可以轻松地将CEO
映射到Agency
,因为它只涉及一列:CEO.id==Agency.CEO\u id
。但我无法使用这两列将分支机构映射到代理机构:Agency.id==Branch.Agency\u id和Agency.main\u Branch\u id==Branch.Branch\u 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"
}
}
.....
}
参考is-第6.5.2.5节复合主键