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);
答案 0 :(得分:2)
您可以使用实体加载图。这是相当新的,我认为它只在JPA2.1中得到支持。
http://www.thoughts-on-java.org/jpa-21-entity-graph-part-1-named-entity/