У меня есть приложение Grails 2, где один объект домена использует эту строку:
static hasMany = [masters: AssetType, shortforms: AssetType, mezzanines: AssetType, captions: AssetType, artwork: AssetType, ancillary: AssetType]
Результирующая таблица мостов имеет 7 столбцов, и все они обнуляются, а сама таблица заполнена редко, сбольшинство строк просто имеют значения в 2/7 столбцах.
Теперь я работаю над переходом на Grails 3. Версия приложения Grails 3 имеет точно такое же определение класса домена, но в итоговой таблице только AssetType_IDкак обнуляемое.
Я получаю эту ошибку при попытке заполнить эту таблицу некоторыми нулевыми значениями:
Причина: org.h2.jdbc.JdbcSQLException: NULL не разрешено для столбца "AEPARTNER_PACKAGE_ANCILLARY_ID ";Оператор SQL: вставка в значения aepartner_package_asset_type (aepartner_package_artwork_id, asset_type_id) (?,?) [23502-197]
Добавление следующего кода в «ограничения» класса домена не помогло.
ancillary nullable: true
ПРИМЕЧАНИЕ. Я использовал веб-клиент H2 для просмотра данных таблицы и определений таблиц, включая поле IS_NULLABLE.
Как я могу установить для этих столбцов / полей значение Grail 3?
Определения источников данных:
dataSource:
pooled: true
jmxExport: true
driverClassName: org.h2.Driver
username: sa
password: ''
environments:
development:
dataSource:
dbCreate: create-drop
url: jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
grails.dbconsole.enabled: true
Любая помощь приветствуется.