Grails - два свойства одного типа и одно не сохраняется в базе данных, ошибок нет - PullRequest
1 голос
/ 03 марта 2012

Grails 2.0.1

Ниже представлены упрощенные версии доменов:

class Attribute {
   String name

   static hasMany = [attributeParameters: AttributeParameter]
}

class AttributeParameter {
   String name

   Attribute attributeReference

   static belongsTo = [attribute:Attribute]
}

Когда я смотрю на схему в базе данных, в AttributeParameter есть 2 отдельных FK;1 для attribute_reference_id и один для attribute_id.Когда я сохраняю домены, заполненные всеми их данными, я получаю 0 ошибок как для Attribute, так и для AttributeParameter, однако столбец attribute_reference_id никогда не заполняется.Отладка, я вижу объект attributeReference, и у него есть идентификатор, даже после вызовов сохранения.Grails не выдает никаких исключений (по крайней мере, тех, которые отображаются на консоли).

Странно, что если я зайду в базу данных и добавлю идентификатор атрибута в столбец attribute_reference_id, GORM загрузит его идеально.Повторное нажатие кнопки save возвращает к нулю, даже если отладка показывает наличие объекта.

Действительно в недоумении, почему данные не сохраняются.

1 Ответ

1 голос
/ 03 марта 2012

Мне пришлось добавить следующее к атрибуту:

static mappedBy = [attributeParameters: 'attribute']
...