2012-05-22 2 views
0

Приложение My Grails отлично работает. Если я помню corectly все, что я сделал, чтобы изменить contraint на одном из моих классов предметной области от пустые: правда, обнуляемый: истинно к пустых: ложь, обнуляемой ложью. И теперь, когда я пытаюсь создать новый экземпляр этого класса я получаю следующее сообщение об ошибке:Недвижимость Grails не может быть пустой ошибкой

Property [contract] of class [class com.app.Request] cannot be null 
Property [description] of class [class com.app.Request] cannot be null 
Property [productline] of class [class com.app.Request] cannot be null 
Property [requestType] of class [class com.app.Request] cannot be null 
Property [subject] of class [class com.app.Request] cannot be null 

И я обеспечил значение для всех этих свойств.

Я предполагаю, что существует некоторый конфликт между gorm и базой данных. Может кто-нибудь объяснить мне, что происходит и как это исправить.

+1

Возможно, это для существующих экземпляров? Я имею в виду данные в базе данных, имеет ли он ненулевые значения для всех указанных полей? –

+0

@IgorArtamonov Интересно. Есть нулевые значения в непустых полях, но у меня были те, перед которыми и все работало. Я не знаю, как это может быть проблемой. Можете ли вы уточнить? – drago

ответ

3

У меня была аналогичная проблема, у меня были обновленные ограничения до ненулевых, но у моих сохраненных данных были нули для ненулевых полей. В какой-то момент Grails пытается загрузить существующие данные, но не работает на шаге валидации.

Попробуйте обновить базу данных с некоторыми значениями по умолчанию (я имею в виду, используя простой SQL UPDATE SET x = 'temp' WHERE x IS NULL), сделайте grails clean и перезагрузите приложение. Должен помочь.