是否可以将select x from Clazz x
这样的JPQL sting转换为CriteriaQuery
对象,我可以在其中检查查询的根目录是否为Clazz
(使用{{1} }}或以不同的方式做同样的事情(不转换成CriteriaQuery.getRoots
)?
JPA文档非常简单(例如CriteriaQuery
的类评论说"返回CriteriaBuilder的实例以创建CriteriaQuery对象。" - 10或20个句子和引用更多不会受到伤害)。因此,它没有提及有关逆转CriteriaBuilder
过程的任何内容。
jpa - transforming jpql join query to criteria api和How to convert a JPQL with subquery to Criteria API equivalent?涵盖具体案例。我正在寻找通用的程序化解决方案。
指定与CriteriaQuery -> TypedQuery
的参数不匹配的类型会导致CriteriaBuilder.createQuery(Class)
,但这更像是一种解决方法,并且不允许非常有用一套方法进行调查。