我已經對本文檔有一個很簡單的問題,使用標準API創建查詢:documentation標準API:使用標準API創建查詢文檔
在這裏,你可以閱讀CriteriaBuilder接口部分的表達方法以下有關and
方法在這一部分:表35-3複合謂語方法在CriteriaBuilder接口 和方法使用例子:
CriteriaQuery<Pet> cq = cb.createQuery(Pet.class);
Root<Pet> pet = cq.from(Pet.class);
cq.where(cb.equal(pet.get(Pet_.name), "Fido")
.and(cb.equal(pet.get(Pet_.color), "brown"))
但實際上,這並不是因爲這裏的where
方法後,你可以工作不叫.and()
... 的正確用法是:
CriteriaQuery<BookEntity> cq = cb.createQuery(Pet.class);
Root<Pet> pet = cq.from(Pet.class);
cq.where(cb.and(cb.equal(pet.get(Pet_.name), "Fido"),
cb.equal(pet.get(Pet_.color), "brown")));
那麼這是爲什麼?也許有一些版本差異? 或者,也許這只是文檔中的一些錯誤,但在這種情況下,我會留下這個用法的一個很好的例子。
「教程」是錯誤的,並且還有其他錯誤。使用其中一個JPA提供商提供的文檔,或者參考JPA規範 –
謝謝你的回答尼爾!其實我必須在我的作業中使用這個API。我們無法使用任何供應商特定解決方案。但再次感謝。實際上,您是否知道這個Criteria-Api的指南或教程或文檔,它沒有錯誤,並且不僅提供供應商特定的解決方案? – F3R1
JPA規範和javadocs是權威性指南。除此之外,這一個http://www.datanucleus.org:15080/products/accessplatform_5_1/jpa/query.html#criteria –