Ограничение класса домена Grails «Not Null»

У меня есть класс домена:

class ProgramArea {
       String        programCd
       String        programArea
       String        description

    static constraints = {
programCd(nullable: false, unique: true)
              programArea(nullable: false, blank: false, unique: true)
              description(nullable: true, blank: true, maxSize: 50)
    }

}

В базе данных я хочу, чтобы поле programCd было полем «NOT NULL». Однако это поле не вводится пользователем. У меня есть код в контроллере для генерации ProgramCd. Однако, когда я пытаюсь вставить новые данные, я получаю сообщение об ошибке проверки, говорящее, что programCd не может быть нулевым.

Если я изменю ограничение для programCd как «nullable: true», все будет работать нормально. Может кто-нибудь, пожалуйста, дайте мне знать, есть ли обходной путь для этого?


person user2597565    schedule 14.10.2014    source источник
comment
Можем ли мы увидеть код контроллера?   -  person Abincepto    schedule 15.10.2014


Ответы (2)


Убедитесь, что вы присваиваете значение «programCd» объекту класса. Что здесь кажется ошибкой, так это то, что вы могли генерировать значение programCD, но, возможно, не добавляли его к объекту класса, поэтому это значение остается нулевым.

Попробуйте проверить свой контроллер или вставьте сюда код, чтобы мы могли помочь

person Ekansh Rastogi    schedule 14.10.2014

Возможно, вам придется повторно проверить экземпляр домена после его изменения:

programAreaInstance.programCd = 'something'
programAreaInstance.validate()
person Community    schedule 15.10.2014