2013-07-14 48 views

回答

1
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會爲您擁有的查詢提供靜態查詢。

+0

感謝您的回答。有用。 我同意,替換簡單的JPQL是沒有意義的。我有動態查詢,但只是這部分我不知道該怎麼做。 – srnjak

+0

啊。好吧。很高興有幫助。 –