Да, по умолчанию установлено значение Set, но я использовал List, потому что я интерпретировал «сообщения» как нечто, имеющее порядок. SortedSet, вероятно, будет более подходящим, в любом случае.

я странная проблема.
У меня есть два класса доменаUser а такжеPost с полями:

class User {
  String name
  static hasMany = [posts: Post]
  static constraints = { }
}

а также

class Post {
  String content
  long date = System.getTimeInMillis()
  static constraints = { }

  static belongsTo = [user: User]
  static mapping = {
    version: 'false'
  }
}

и код контроллера:

class UserController {
  def addUser = {
    def user
    if (User.count() == 0) {
      user = new User()
      user.name = "Manish Zedwal"
      user.save(flush: true)
    } else {
      user = User.get(1)
    }
    println "Posts count: " + user.posts.size()
    render "post count: " + user.posts.size()
 }
}

Впервые при доступе к URLhttp://localhost:8080/test/user/addUser, он генерирует исключение нулевого указателя, но после этого работает нормально.
Это исключение, которое я получаю

2011-08-04 15:41:25,847 [http-8080-1] ERROR errors.GrailsExceptionResolver  - Exception occurred when processing request: [GET] /test/user/addUser
Stacktrace follows:
java.lang.NullPointerException: Cannot invoke method size() on null object
        at test.UserController$_closure2.doCall(UserController.groovy:18)
        at test.UserController$_closure2.doCall(UserController.groovy)
        at java.lang.Thread.run(Thread.java:636)

и во второй раз, он печатает и передает хорошо, как шарм

Posts count: 0

В классе пользовательского домена, потому чтоhasMany отношения дляposts, posts это списокPost объекты, тогда не должно быть исключения нулевого указателя при получении размера пустого списка, скорее это должно быть ноль.

Любая помощь приветствуется

Ответы на вопрос(2)

Ваш ответ на вопрос