我有两个实体:
答:
class A {
@Id
Long id;
@OneToMany(fetch = FetchType.LAZY)
List<B> listOfB;
}
和B级:
class B {
@Id
Long id;
@ManyToOne(fetch = FetchType.LAZY)
A a;
}
现在在我的spring数据库中,我正在创建一个类似的查询:
@Query("SELECT a FROM A a INNER JOIN a.listOfB b WHERE b.id = :id")
问题是,执行查询并返回一些A对象,但是当我想访问listOfB
时,我得到NullPointerException
...
A a = aRepository.findByOwnQuery(id);
a.getListOfB().size(); -> NullPointerException
答案 0 :(得分:-1)
NullPointerException
可能是因为您在父类listOfB
中抓取您的孩子A
懒惰。
请尝试JOIN FETCH
@Query("SELECT a FROM A a JOIN FETCH a.listOfB b WHERE b.id = :id")