JPA:如何告诉 CriteriaQuery 获取惰性属性? 例如,
学生实体具有声明为惰性的描述属性。
public class Student {
@Basic(fetch=FetchType.LAZY)
public String getDescription() {
...
}
}
检索所有学生渴望获取的描述:
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
CriteriaQuery<Student> criteriaQuery = criteriaBuilder.createQuery(Student.class);
Root<Student> root = criteriaQuery.from(Student.class);
criteriaQuery.distinct(true);
TypedQuery<Student> query = em.createQuery(criteriaQuery);
List<Student> students = query.getResultList();
如何告诉 CriteriaQuerty 在查询结果中包含 Student.description?
为了获取惰性实体,我可以使用 fetch
root.fetch("courses", JoinType.LEFT);
您可以使用实体负载图。这是相当新的,我认为它只在 JPA2.1 中受支持。
https://www.baeldung.com/spring-data-jpa-named-entity-graphs