我有两个域名:
class CodeSetDetail {
String id
String codeSummaryId
static hasMany = [codes:CodeSummary]
static constraints = {
id(unique:true,blank:false)
}
static mapping = {
version false
id column:'code_set_detail_id', generator: 'assigned'
}
}
and :
class CodeSummary {
String id
String codeClass
String name
String accession
static belongsTo = [codeSetDetail:CodeSetDetail]
static constraints = {
id(unique:true,blank:false)
}
static mapping = {
version false
id column:'code_summary_id', generator: 'assigned'
}
}
我得到两个包含列的表:
code_set_detail:
code_set_detail_id
code_summary_id
和
code_summary:
code_summary_id
code_set_detail_id (should not exist)
code_class
name
accession
我想通过'code_summary_id'(而不是'code_set_detail_id')链接code_set_detail表和code_summary表。
注意:'code_summary_id'在code_set_detail表中定义为列,并在code_summary表中定义为主键。
总结一下,我想在code_summary表中定义'code_summary_id'作为主键,并在code_set_detail表中映射'code_summary_id'。
如何在表中定义主键,并将此键映射到另一个表?
答案 0 :(得分:1)
从您的Groovy代码中,每个CodeSetDetail
都有许多CodeSummary
个与之关联的对象。在DB中执行此操作的方法是让code_summary
表的每一行标识与code_set_detail
表关联的行。你说:
总结一下,我想定义 'code_summary_id'作为主键 code_summary表和map code_set_detail中的'code_summary_id' 表
如果code_summary_id
表中有code_set_detail
,code_set_detail
中的每一行都可以与code_summary
表中最多一行相关联,这意味着在Groovy中每个CodeSetDetail
对象最多可以指向一个CodeSummary
个对象。这就是你想要的吗?