GORM, давая имена для столбцов joinTable с составным идентификатором - PullRequest
1 голос
/ 20 мая 2011

Работая с Grails 1.3.7, я имею дело с устаревшей БД. У меня есть объект домена '' Cake '', который имеет собственную коллекцию встроенных компонентов в таблицу соединений.

Ingredient.groovy

class Ingredient {
  String name
  IngredientCategory category

  mapping {
    table "foo_ingredient"
    version false
    id composite:['name', 'category']
    columns {
      word     column:"the_name"
     category column:"lol_category_id"
    }
  }

}

Cake.groovy

class Cake {
  String name

  static hasMany = [ ingredients : Ingredient ]

  static mapping = {
    table "foo_cake"
    version false
    columns {
      id   column:"id"
      name column:"the_name"
    }

    ingredients joinTable: [
      name : "foo_cake_ingredient",
      key  : "cake_id"
    ]
  }
}

Проблема в том, что Граилс ожидает, что таблица '' foo_cake_ingredient '' будет иметь два столбца '' имя_ ингредиента '' и '' ингредиент_category_id ''. Я хотел бы указать вручную эти имена столбцов и не дать Grails (ошибочно) угадать их. Я не могу понять, как это сделать.

Ответы [ 2 ]

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

Я показал, как это сделать здесь: http://grails.1312388.n4.nabble.com/Composite-foreign-key-td3046351.html#a3046436

0 голосов
/ 20 мая 2011

Вероятно, вам нужно создать спящий xml-сопоставление для двух таблиц в этих отношениях.

Читали ли вы http://jasonrudolph.com/blog/2006/06/20/hoisting-grails-to-your-legacy-db/?

...