學生 - 課程:一對多如何使用Criteria編寫以下JPQL?
JPQL:
從學生的學生選擇學生,課程學習,其中 student.name =:STUDENTNAME和(course.courseName =:COURSENAME或 course.courseDuration = courseDuration )
讓我們假設一個學生可能有10個課程,我想只檢索兩個有學生 - 課程(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);
你的問題不清楚:JPQL,標準和你的描述做了3件不同的事情。你想得到什麼?另外,如果一門課程後面有幾個學生,那麼你有一個ManyToMany,而不是OneToMany。 – 2012-08-07 07:30:42