0
如何在JPA2中執行Criteria Query,相當於此JPQL與不使用元模型?如何使用JPA Criteria API執行此操作?
SELECT p FROM Employee e JOIN e.phones p WHERE e=:empl
如何在JPA2中執行Criteria Query,相當於此JPQL與不使用元模型?如何使用JPA Criteria API執行此操作?
SELECT p FROM Employee e JOIN e.phones p WHERE e=:empl
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Phone> criteriaQuery = cb.createQuery(Phone.class);
Root<Employee> employee = criteriaQuery.from(Employee.class);
CollectionJoin<Employee, Phone> phone = employee.join(Employee_.phones);
criteriaQuery.where(cb.equal(employee, empl);
criteriaQuery.select(phone);
TypedQuery<Phone> query = em.createQuery(criteriaQuery);
List<Phone> phones = query.getResultList();
這麼說,我看到與代碼的可怕,不可讀線以上更換簡單,明顯的JPQL查詢是沒有意義的。 Criteria查詢對於動態構建查詢很有用,但JPQL會爲您擁有的查詢提供靜態查詢。
感謝您的回答。有用。 我同意,替換簡單的JPQL是沒有意義的。我有動態查詢,但只是這部分我不知道該怎麼做。 – srnjak
啊。好吧。很高興有幫助。 –