使用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并采用最佳实践,无论可能如何。 –