문제
나를 하나의 관계로 작업배/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}
제휴하지 않습니다 StackOverflow