删除查询(命名为本机查询)在使用Hibernate规范的JPA中不起作用

时间:2012-05-02 10:16:39

标签: hibernate jpa

我在orm.xml中将我的命名本机查询作为

<named-native-query name="deleteAuthTokenByToken">
    <query><![CDATA[DELETE FROM AUTH_TOKEN WHERE TOKEN=:token]]></query>
</named-native-query>

我正在尝试在我的代码中执行此查询

em.getTransaction().begin();
em.createNamedQuery("deleteAuthTokenByToken").setParameter("token", token).executeUpdate();
em.getTransaction().commit();

当我在orm.xml中查询时,实体管理器本身没有创建,在异常

之下
Caused by: org.hibernate.cfg.NotYetImplementedException: Pure native scalar queries are not yet supported

但是当我使用createNativeQuery()

时,同样的查询正在运行

1 个答案:

答案 0 :(得分:0)

这里缺少结果类,它已经解决了一旦我改为

<named-native-query name="deleteAuthTokenByTokenAndOrgId" result-class="com.modria.jpa.DO.AuthToken">
    <query><![CDATA[DELETE FROM AUTH_TOKEN WHERE TOKEN=:token AND ORG_ID=:orgId]]></query>
</named-native-query>