问题描述
是否有可能将诸如select x from Clazz x
类的JPQL字符串select x from Clazz x
转换为CriteriaQuery
对象,在该对象中我可以检查查询的根是否为Clazz
(使用CriteriaQuery.getRoots
)或做同样的事情(不转换为CriteriaQuery
)?
JPA文档非常简单(例如, CriteriaBuilder
的类注释为“返回CriteriaBuilder的实例以创建CriteriaQuery对象。”-10或20个句子以及引用更多的内容不会受到损害)。
因此,它没有提到任何有关逆转CriteriaQuery -> TypedQuery
过程的内容。
以及 涵盖具体案例。 我正在寻找通用的编程解决方案。
指定与CriteriaBuilder.createQuery(Class)
的参数不匹配的类型会导致IllegalArgumentException
,但这是一种替代方法,并且不允许研究非常有用的方法集。
1楼
不,不可能,或者至少没有标准化的方法。
另请参见有人针对JPA的未来版本提出要求的 。