äžéãã
ããããšãããããŸãïŒ
ãããŠãã¿ãŸããã§ããã»ã»ã»ãŸããã³ãŒããééã£ãŠããã ããšã¯ã»ã»ã»ããã£ãšæ»èªããã¹ãã§ããã
åœåã®çåã®ãååŽã ãã§ä¿åãã§ããã®ã¯ã©ããªã®ïŒããšããç¹ã«é¢ããŠããããããªããããªçåã«è³ã£ãããšãããšãå€å¯Ÿ1ã®å Žåã以äžã®ã³ãŒããèããããŸãã
---------------------------------------------------------------
class Author {
  String name
  Book book
  static constraints = {
  }
}
class Book {
  String title
  static belongsTo = [author:Author]
  static constraints = {
  }
}
---------------------------------------------------------------
ãã®ç¶æ
ã ãšãååŽïŒBookïŒã®ã¿ã®ä¿åãåºæ¥ãŸããã§ããã
ãã®ãããbelongsToãæå®ãããšãååŽã®ã¿ã§ã¯ä¿åã»åé€ã¯åºæ¥ãªããªãã®ã ãªããšæã蟌ãã§ããŸã£ãŠããŸããã
ã¡ãªã¿ã«ãã®å ŽåãBookåŽã®constraintsãã
static constraints = {
  author blank: true, nullable: true
}
ã«ãããšãååŽïŒBookïŒã®ã¿ã§ä¿åãåºæ¥ãããšã確èªããŸããã
ã¡ãªã¿ã«constraintsãä»ããªãã£ãå Žåã®ãšã©ãŒã®å
容ã¯äžèšã®ãšããã§ãã
groovy:000> > book.errors.allErrors.each{println it}
book.errors.allErrors.each{println it}
Field error in object 'grailssamples.Book' on field 'author': rejected value [null]; codes [grailssamples.Book.author.nullable.error.grailssamples.Book.author,grailssamples.Book.author.nullable.error.author,grailssamples.Book.author.nullable.error.grailssamples.Author,grailssamples.Book.author.nullable.error,book.author.nullable.error.grailssamples.Book.author,book.author.nullable.error.author,book.author.nullable.error.grailssamples.Author,book.author.nullable.error,grailssamples.Book.author.nullable.grailssamples.Book.author,grailssamples.Book.author.nullable.author,grailssamples.Book.author.nullable.grailssamples.Author,grailssamples.Book.author.nullable,book.author.nullable.grailssamples.Book.author,book.author.nullable.author,book.author.nullable.grailssamples.Author,book.author.nullable,nullable.grailssamples.Book.author,nullable.author,nullable.grailssamples.Author,nullable]; arguments [author,class grailssamples.Book]; default message [Die Eigenschaft [{0}] des Typs [{1}] darf nicht null sein]
===> [Field error in object 'grailssamples.Book' on field 'author': rejected value [null]; codes [grailssamples.Book.author.nullable.error.grailssamples.Book.author,grailssamples.Book.author.nullable.error.author,grailssamples.Book.author.nullable.error.grailssamples.Author,grailssamples.Book.author.nullable.error,book.author.nullable.error.grailssamples.Book.author,book.author.nullable.error.author,book.author.nullable.error.grailssamples.Author,book.author.nullable.error,grailssamples.Book.author.nullable.grailssamples.Book.author,grailssamples.Book.author.nullable.author,grailssamples.Book.author.nullable.grailssamples.Author,grailssamples.Book.author.nullable,book.author.nullable.grailssamples.Book.author,book.author.nullable.author,book.author.nullable.grailssamples.Author,book.author.nullable,nullable.grailssamples.Book.author,nullable.author,nullable.grailssamples.Author,nullable]; arguments [author,class grailssamples.Book]; default message [Die Eigenschaft [{0}] des Typs [{1}] darf nicht null sein]]
groovy:000>Â
ãŸã ãŸã å匷äžã§ã¯ãããŸãããGORMã¯è€éã ãªã»ã»ã»ãšããã®ãæ£çŽãªã€ã¡ãŒãžã§ãã
è€éãšããããããä»ãŸã§ORããããŒã䜿ããã«éããŠããèªåã«ã¯ãªããªãå³ãããšãã£ãæ¹ãæ£ããããïŒ
ã°ã°ããšããã°ãªã©ã§çŽ æŽãããèšäºã¯æ²¢å±±ããã®ã§ãããäžã
ãã¥ãŒããªã¢ã«çãªãã®ãèŠã€ãããªããŠå€§å€ã§ãã
ãã®ãŸãŸèª¿æ»ãç¶ããŠããã€ãGORMã®éåŒãè³æã¿ãããªã®ãäœã£ãŠã¿ãããªãšæããŸãã
ããããšãããããŸããïŒ