是否可以在不定义根的情况下创建Criteria Query?

时间:2014-06-18 11:59:05

标签: java jpa criteria criteria-api

是否可以在不定义根的情况下创建Criteria Query?或者我应该始终定义至少一个根?

更新

我已经尝试过这样做而且我有IllegalStateException - no criteria query roots were specified

但是我想知道是否有机会在没有定义根的情况下进行标准查询?

1 个答案:

答案 0 :(得分:1)

没有。这不可能。根据JPA(2)规范,CriteriaQuery必须至少有一个根。

编辑:我希望在JPA 2规范的§6.5.2(查询根)中找到明确的参考,但在这一点上尚无定论。但是我回想起关于OCE JPA开发人员考试的一个问题,这个问题确实被问及“一个或多个根”是正确的答案。对不起,这是我能提供的最佳参考。

编辑2:正如@wypieprz所建议的那样,来自§4.14的BNF符号可能是更好的参考:)查询必须有一个或多个FROM子句。由于Criteria API或多或少是JPQL的不同符号,因此JPQL的所有限制也必须适用于Criteria API。