JPA: how to tell CriteriaQuery to fetch lazy properties? For example,
Student entity has description property that is declared lazy.
public class Student {
@Basic(fetch=FetchType.LAZY)
public String getDescription() {
...
}
}
Retrieve all students eager fetching descriptions:
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();
How to tell CriteriaQuerty to include student.description in query results?
For fetching lazy entities, I can use fetch
root.fetch("courses", JoinType.LEFT);