使用JPA2.0(通過Hibernate 4),我可以通過使用EntityManager.find(java.lang.Class entityClass,java)查詢數據庫中的查詢條件是主鍵的記錄。 lang.Object primaryKey)。但是,如果查詢條件不是主鍵(例如,選擇城市值爲'london'的所有記錄),是否必須創建TypedQuery並顯式提供SQL語句?我應該採用什麼最佳做法?不使用主鍵的JPA查詢
0
A
回答
0
的JPA Criteria API爲您提供編譯時安全,你不會構建自己的動態查詢(使用JPQL或SQL)得到的水平。尤其是當許多條件開始蔓延(可選字段,條件子查詢......)時,它可能變得非常容易出錯。
的標準API可以更復雜的寫(尤其是對於簡單的查詢),你需要創建一個圍繞標準的API一些管道代碼,使之成爲真正的動態和易於使用的語言。它並沒有真正提供開箱即用。
有些人喜歡使用Criteria API,而另一些人喜歡命名查詢/ JPQL。
+0
這正是我需要的,謝謝。我將使用CriteriaQuery方法。 –
相關問題
- 1. JPA與主鍵以外的行查詢
- 2. Mysql查詢不使用主鍵
- 3. JPA:對查詢鍵anyOf()無效使用
- 4. MySQL不查詢主鍵
- 5. 查詢主鍵
- 6. 使用主鍵的查詢優化
- 7. JPA使用外鍵命名查詢不工作
- 8. 使用順序主鍵插入查詢
- 9. 使用複合主鍵查詢表格
- 10. 使用主鍵進行SQL查詢
- 11. 從外鍵查詢主鍵
- 12. JPA查詢不起作用
- 13. Oracle + JPA - 使用INTERVAL查詢
- 14. MySQL查詢外鍵引用主鍵
- 15. JPA - 主鍵前綴
- 16. JPA主鍵衝突
- 17. JPA主鍵集合
- 18. JPA複合主鍵
- 19. jpa-主鍵關係
- 20. MySQL不使用SELECT ... ORDER BY查詢中的主鍵。爲什麼?
- 21. JPA主鍵在不同的序列表
- 22. SQL查詢,多個外鍵的主鍵
- 23. 使用IdClass彈簧jpa數據jpa與3個主鍵合成
- 24. JPA:轉換SQL查詢JPA查詢
- 25. 複合主鍵查詢
- 26. Laravel查詢主鍵結果。
- 27. 休眠按主鍵查詢
- 28. SQL查詢 - 過濾主鍵
- 29. 使用「WHERE IN」的Rails 3.2查詢不使用我的主鍵作爲索引
- 30. SQLite的查詢查找主鍵
建議您閱讀TypedQuery以及傳遞給它的查詢是什麼。這不是SQL,更像是JPQL – DataNucleus
我明白,但我正確地認爲我必須使用TypedQuery,沒有其他方法嗎?我很樂意這樣做,我只是想確保我最大限度地利用Hibernate/JPA並採用最佳實踐,無論可能如何。 –