首页 > 解决方案 > 在 hibernate-5 中运行命名查询时,我将如何确保它使用 JPA2.1 标准

问题描述

在 hibernate-5 中运行命名查询时,我如何确保它使用 JPA2.1 标准(JPQL Grammer)

在 hibernate5 中运行时它执行得很好,在 JPA2.1 中这应该会失败,我需要什么/在哪里设置一些东西来使用 JPA 标准(JPQL 语法)。

String queryString = "from DeptEmployee where employeeNumber = :employeeNo";
Query jpaQuery = entityManager.createQuery(queryString);

当在 Hibernate-5 中针对 JPQL 语法运行时,这应该会引发异常(因为没有相应的“select”关键字),但在不设置 JPQL 语法的情况下应该可以正常运行。

我想使用 Hibernate5 引擎运行,但仍想保留 JPA 实现。顺便说一句,我试过这个属性'hibernate.query.jpaql_strict_compliance= true',这没有用。参考:http ://docs.jboss.org/hibernate/orm/5.2/javadocs/org/hibernate/cfg/AvailableSettings.html#JPAQL_STRICT_COMPLIANCE

标签: hqljpqljpa-2.1hibernate-5.x

解决方案


你不能。因为 Hibernate 是底层的 JPA 实现并且接受 HQL 风格的查询(没有选择)。

顺便提一句。你为什么要那样做?


推荐阅读