是否可以在不定义根的情况下创建Criteria Query?或者我应该始终定义至少一个根?
更新:
我已经尝试过这样做而且我有IllegalStateException - no criteria query roots were specified
但是我想知道是否有机会在没有定义根的情况下进行标准查询?
答案 0 :(得分:1)
没有。这不可能。根据JPA(2)规范,CriteriaQuery必须至少有一个根。
编辑:我希望在JPA 2规范的§6.5.2(查询根)中找到明确的参考,但在这一点上尚无定论。但是我回想起关于OCE JPA开发人员考试的一个问题,这个问题确实被问及“一个或多个根”是正确的答案。对不起,这是我能提供的最佳参考。编辑2:正如@wypieprz所建议的那样,来自§4.14的BNF符号可能是更好的参考:)查询必须有一个或多个FROM
子句。由于Criteria API或多或少是JPQL的不同符号,因此JPQL的所有限制也必须适用于Criteria API。