GORM ID генерации и принадлежит к ассоциации? - PullRequest
0 голосов
/ 20 мая 2010

У меня есть два домена:

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_id 
code_set_detail_id (should not exist)    
code_class    
name   
accession 

Я бы хотел связать таблицу code_set_detail и таблицу code_summary по 'code_summary_id' (, а не по 'code_set_detail_id' ).
Примечание. 'Code_summary_id' определяется как столбец в таблице code_set_detail и определяется как первичный ключ в таблице code_summary.

Подводя итог, я хотел бы определить 'code_summary_id' в качестве первичного ключа в таблице code_summary и сопоставить 'code_summary_id' в таблице code_set_detail.

Как определить первичный ключ в таблице, а также сопоставить этот ключ с другой таблицей?

1 Ответ

1 голос
/ 20 мая 2010

Из вашего кода Groovy каждый CodeSetDetail имеет множество CodeSummary объектов, связанных с ним. Способ сделать это в БД состоит в том, чтобы каждая строка таблицы code_summary идентифицировала строку, с которой она связана из таблицы code_set_detail. Вы сказали:

Подводя итог, хотелось бы определить 'code_summary_id' в качестве первичного ключа в таблица code_summary и карта 'code_summary_id' в code_set_detail таблица.

Если у вас есть таблица code_summary_id в code_set_detail, каждая строка в code_set_detail может быть связана максимум с одной строкой в ​​таблице code_summary, что означает, что в Groovy каждый объект CodeSetDetail может указывать на не более одного CodeSummary объекта. Это то, что вы хотите?

...