【发布时间】:2017-06-02 20:16:37
【问题描述】:
我在编写正确的 JPA 查询以获取具有一个填充集合的实体时遇到问题。例如,我有两个集合的实体(我希望两个集合都有 FetchType.LAZY):
public class Entity {
private String value;
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name="entity_id")
private List<ElementA> elementsA;
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name="entity_id")
private List<ElementB> elementsB;
}
我想运行 JPA 查询并仅获取有关实体和集合“elementsA”的信息。我正在尝试:
"From Entity e join fetch e.elementsA eA"
但我有错误:
Caused by: org.hibernate.LazyInitializationException:
failed to lazily initialize a collection of role:
model.jpa.entities.Entity.elementsB,
could not initialize proxy - no Session
我应该如何编写此查询以仅获取有关集合“elementsA”的信息。
谢谢,达雷克。
【问题讨论】:
-
FWIW JPQL 以“SELECT e”开头,没有它是不可移植的。
标签: hibernate jpa jakarta-ee jpql