如何处理Grails/GORM中的空列表?

4 grails grails-orm

我正试图与grails/gorm建立一对多的关系.我不明白如何处理一个空列表.

这是我的域类:


class Parent {
  List children
  static hasMany = [children: Children]
}

这是我的测试:


  void testEmptyChildren() {
    def parent = new Parent()
    assert 0, parent.children.size()
  }

这失败了"java.lang.NullPointerException:无法在null对象上调用方法大小()"

我应该做些什么来处理空列表?

Joh*_*ner 7

在您的测试中,parent.children将始终为null(在添加第一个之前,不会初始化子项).所以你可以把测试改为:

assertNull parent.children
Run Code Online (Sandbox Code Playgroud)

保存父项时(无论是否添加子项)或添加子项时,将初始化子项.如果您希望始终初始化它,则可以在定义子项时在Parent中手动执行:

List<Children> children = new ArrayList<Children>()
Run Code Online (Sandbox Code Playgroud)