#sql-server #hibernate #grails #grails-domain-class
#sql-server #спящий режим #grails #grails-domain-class
Вопрос:
У меня есть 2 устаревшие таблицы в SQL Server:
- Это первый -> http://ur1.ca/hl1mi
- Это вторая таблица —> http://ur1.ca/hl1mr
Это мои классы домена для этих таблиц
- Taladro.groovy —> http://ur1.ca/hl1mw
- Proyecto.groovy —> http://ur1.ca/hl1n8
Когда я пытаюсь вставить Taladro в базу данных с использованием динамических лесов, происходит сбой с этой ошибкой:
ОШИБКА использования.JDBCExceptionReporter — не удается вставить значение NULL в столбец ‘proyecto_id’, таблица ‘Портал.Столбец ORECONTROL.TALADROS’; не допускает нулевых значений. ОШИБКА вставки.
Я меняю имя внешнего ключа с id_proyecto на IdMalla, как в устаревших таблицах (см. http://ur1.ca/hl1mw ).
Я использую SQL Server 2008 в качестве сервера базы данных
Ответ №1:
Кажется, что теперь у вас есть столбец proyecto_id
в TALADROS
таблице с ненулевым ограничением. В объекте домена Taladro
вы указали сопоставление столбцов ассоциации как 'IdMalla'
вместо значения по умолчанию 'proyecto_id'
. Очевидно, это означает, что столбец proyecto_id не заполнен, и поскольку он имеет ограничение not-null, вы получаете эту ошибку.
Ответ №2:
Я могу решить проблему, переименовав классы домена с именем таблиц в базе данных и изменив имя внешнего ключа на «IdMalla». Спасибо всем за ответы