GORM ID生成和belongsTo关联?

发布于 2024-09-02 07:58:11 字数 1240 浏览 7 评论 0原文

我有两个域:

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表和code_summary表(和不是通过“code_set_detail_id”)。
注意:'code_summary_id'定义为code_set_detail表中的列,并定义为code_summary表中的主键。

总而言之,我想将“code_summary_id”定义为code_summary表中的主键,并将“code_summary_id”映射到code_set_detail表中。

如何在表中定义主键,并将该键映射到另一个表?

I have two domains :

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

I get two tables with columns:

code_set_detail:

code_set_detail_id     
code_summary_id 

and

code_summary:

code_summary_id 
code_set_detail_id (should not exist)    
code_class    
name   
accession 

I would like to link code_set_detail table and code_summary table by 'code_summary_id' (and not by 'code_set_detail_id').
Note : 'code_summary_id' is define as column in code_set_detail table, and define as primary key in code_summary table.

To sum-up, I would like define 'code_summary_id' as primary key in code_summary table, and map 'code_summary_id' in code_set_detail table.

How to define a primary key in a table, and also map this key to another table ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天荒地未老 2024-09-09 07:58:11

在您的 Groovy 代码中,每个 CodeSetDetail 都有许多与其关联的 CodeSummary 对象。在数据库中执行此操作的方法是让 code_summary 表的每一行标识与 code_set_detail 表中与其关联的行。你说:

总而言之,我想定义
'code_summary_id' 作为主键
code_summary表和map
code_set_detail 中的“code_summary_id”
表。

如果您在 code_set_detail 表中有一个 code_summary_id,则 code_set_detail 中的每一行最多可以与 code_summary 中的一行关联code> 表,这意味着在 Groovy 中每个 CodeSetDetail 对象最多可以指向一个 CodeSummary 对象。这就是你想要的吗?

From your Groovy code, each CodeSetDetail has many CodeSummary objects associated with it. The way to do this in the DB is to have each row of code_summary table identify a row it is associated with from code_set_detail table. You said:

To sum-up, I would like define
'code_summary_id' as primary key in
code_summary table, and map
'code_summary_id' in code_set_detail
table.

If you have a code_summary_id in code_set_detail table, each row in code_set_detail can be associated to at-most one row in code_summary table, which means that in Groovy each CodeSetDetail object can point to at most one CodeSummary object. Is that what you want?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文