学生 - コース : OneToMany
JPQL :
Student から Student を選択します。 Course course where student.name=:STUDENTNAME and (course.courseName=:COURSENAME or course.courseDuration=courseDuration)
1 人の学生が 10 のコースを持っているとします。Student - Courses(2) を持つ 2 つのレコードだけを取得したいとします。
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Student> criteriaQuery = criteriaBuilder.createQuery(Student.class);
Root<Student> studentRoot = criteriaQuery.from(Student.class);
studentRoot.fetch("courses", JoinType.LEFT);
Predicate condition = criteriaBuilder.equal(studentRoot.get("studentName"), "someName");
//how to add course condition here.
criteriaQuery.where(condition);