Проблема с проверкой столбца ID домена Grails - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть простой объект домена

class MyDomain
{
  String id
  String name

  static constraints = 
  {
     id unique:true
     name nullable:true
  }

 static mapping = 
 {
   table 'schema.MyDomain'
   id column:'MY_ID', type:'string', generator:'assigned'
 }
}

Проблема, с которой я сталкиваюсь, заключается в том, что когда я вызываю validate для объекта, он возвращает true, даже когда поле id равно нулю.Я думал, что все столбцы обнуляемы: ложь, если явно не указано иное.Если я изменю строку

id unique:true

на

id unique:true, nullable:false

, то, похоже, все будет работать нормально.Мой главный вопрос: почему я должен явно установить nullable для столбца ID?Это всего лишь небольшая строка кода, но мне не нравится просто добавлять тег кода, не понимая, почему в случае, если это признак более серьезной проблемы.

1 Ответ

0 голосов
/ 27 сентября 2011

Столбец id создается автоматически и заполняется автоматически (когда управление версиями включено [по умолчанию]), и вам не нужно объявлять новый.Этот столбец идентификатора по умолчанию nullable:false по умолчанию, и вы все равно можете установить для него свойства сопоставления и стратегии генерации идентификаторов, как вы делали выше.

Однако, если вы хотите определить ограничения по умолчанию для всего домена в васПриложение, вы можете сделать это глобально, установив следующее в вашем файле config.groovy.

grails.gorm.default.constraints = {
   myShared(nullable:true, size:1..20)
}

Подробнее об ограничениях см. документацию Grails .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...