JPA:如何告诉 CriteriaQuery 在返回的实体中包含惰性属性?

问题描述 投票:0回答:1

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);
jpa properties lazy-evaluation
1个回答
1
投票

您可以使用实体负载图。这是相当新的,我认为它只在 JPA2.1 中受支持。

https://www.baeldung.com/spring-data-jpa-named-entity-graphs

© www.soinside.com 2019 - 2024. All rights reserved.