JPA:如何告訴CriteriaQuery獲取懶惰屬性? 例如,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?
有關讀取懶惰的實體,我可以用取
root.fetch("courses", JoinType.LEFT);
使用EntityGraph就像答案說的那樣。另請參閱https://stackoverflow.com/questions/37049358/hibernate-load-entities-with-fields-defined-at-runtime/37053402#37053402 –