java - 如何将文本 JPQL JPA 查询转换为条件查询?

标签 java jpa jpql

是否可以将 select x from Clazz x 这样的 JPQL 字符串转换为 CriteriaQuery 对象,我可以在其中检查查询的根是否为 Clazz code> 或不(使用 CriteriaQuery.getRoots)或以不同方式执行相同的操作(不转换为 CriteriaQuery)?

JPA 文档非常简单(例如,CriteriaBuilder 的类注释说“返回 CriteriaBuilder 的实例以创建 CriteriaQuery 对象。” - 10 或 20 个句子和更多引用不会有什么坏处)。因此,它没有提及任何有关反转 CriteriaQuery -> TypedQuery 过程的内容。

jpa - transforming jpql join query to criteria apiHow to convert a JPQL with subquery to Criteria API equivalent?涵盖具体案例。我正在寻找通用的编程解决方案。

指定与 CriteriaBuilder.createQuery(Class) 的参数不匹配的类型会导致 IllegalArgumentException,但这更多的是一种解决方法,并且不允许一组非常有用的研究方法。

最佳答案

不,不可能,或者至少没有标准化的方法。

另请参阅this issue有人为 JPA 的 future 版本请求它。

关于java - 如何将文本 JPQL JPA 查询转换为条件查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31877539/

相关文章:

java - 可执行 jar 中的图形停止

java - 如何使用Java在Oracle DB中插入汉字

java - JPA:哪一方应该是 m:n 关系中的拥有方?

java - 不设置命名查询的参数?

java - 命名查询以选择具有 MAX(列名)的行,另一列为 DISTINCT

java - spring JPA查询与spel表达式随机

java - 将 Elasticsearch 升级到 5.6.3

java - 标准(非灵活)Google App Engine 是否支持 Google Cloud Bigtable?

java - 根据 Android 中的微调器选择更新 ListView

java - 如何在 Eclipse 外部的远程 tomcat 服务器上部署 Web 项目,其中包含 .jar 文件