【发布时间】:2018-01-22 04:46:27
【问题描述】:
我有两个实体:
答:
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
【问题讨论】:
-
发布您的代码,并发布异常的准确和完整的堆栈跟踪。
-
你需要什么代码?有两个实体的关系标记为惰性,还有一个查询。
-
导致 NPE 的代码。
-
因此列表字段为 NULL,并且对象“a”可能在此时已分离,因此无法从数据库中获取该字段。所以在取消管理“a”对象之前获取它
-
@NeilStockton 怎么样?我假设当我通过
INNER JOIN a.listOfB b加入 B 类时,我将在结果对象中有这个列表......
标签: java spring jpa spring-data-jpa