Criteria API 開發 Java 編譯器能夠檢查其正確性的查詢,從而減少運行時不正確 ,這種查詢優於傳統的基於字符串的 Java
Persistence Query Language (JPQL)
查詢。借助運用資料庫函數或匹配實例的樣例查詢,我將編程式查詢構造機制的強大,並將其與運用 預定義語法的 JPQL 查詢執行 比較 。 JPQL 查詢有什麼缺陷? JPA 1.0 引進了 JPQL,這是一種強大的查詢語言,它在很大程度上導致了 JPA 的流行。不過,基於字符串並運用 有限語法的 JPQL 存在一些限定 。要理解 JPQL 的主要限定 之一 SELECT e FROM Employee e WHERE e.name ='MIMI' -------------------------------------------------------- EntityManager em = pr.getEntityManager(); CriteriaBuilder cb=em.getCriteriaBuilder(); CriteriaQuery<Employee> c=cb.createQuery(Employee.class); Root<Employee>emp=c.form(Employee.class); c.select(emp).where(cb.equal(emp.get("name"),"MIMI"));
JP QL Clause Criteria API Interface Method SELECT CriteriaQuery select() FROM AbstractQuery from() WHERE AbstractQuery where() ORDER BY CriteriaQuery orderby() GROUP BY AbstractQuery groupby() HAVING AbstractQuery having() SELECT e FROM Employee e WHERE e.address.city='New York' emp.get("address).get("city) |