문제

나를 하나의 관계로 작업배/gorm.지를 처리하는 방법에 대해 이해하는 빈 목록입니다.

여기에는 내 도메인 클래스:


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

여기에는 나의 테스트:


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

이와 함께 실패"java.랭.Nullpointerexception 이:를 호출할 수 없습 방법을 크기()을 null object"

나는 무엇을 해야 할 일 처리는 빈까?

도움이 되었습니까?

해결책

시험에서 자녀는 항상 무효입니다 (첫 번째를 추가 할 때까지 어린이는 초기화되지 않습니다). 따라서 테스트를 다음으로 변경할 수 있습니다.

assertNull parent.children

자녀는 부모를 구할 때 (자녀가 추가 된 경우에도) 또는 자녀가 추가 될 때 자녀가 초기화됩니다. 항상 초기화되기를 원한다면 자녀를 정의 할 때 부모에게 수동으로 수행 할 수 있습니다.

List<Children> children = new ArrayList<Children>()

다른 팁

나는 비슷한 결과를(아마도 어린이 숙박 null).참고 사용해야 합니다 통합에 대한 테스트 gorm 물이 주위에 있어야합니다.

처리할 수 있는 빈 목록 다음과 같다:

parent.children?.each { println it}
parent.addToChildren(new Children(/* whatever you need */))
parent.children?.each { println it}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top