OpenJPA更新查询,错误:表达式“UPDATEVALUE”至少需要一个孩子

时间:2014-01-29 15:58:36

标签: java sql jpa openjpa

我有一个像这样的命名查询:

UPDATE Table t SET t.status = :statusTo, t.something = null 
WHERE t.status = :statusFrom AND t.lastStatusUpdate <= :lastStatusUpdate

当我在SQL Developer中运行它时,此查询完全正常,但在我的应用程序尝试运行它时则不行。在执行查询之前,3个参数是设置的。当我的应用程序运行它时,我收到以下错误:

org.apache.openjpa.persistence.ArgumentException: An error occurred while parsing 
the query filter "query here". Error message: Expression "UPDATEVALUE" requires
at least one child.;

虽然google我的问题,但是与我的情况差不多的唯一结果是差不多6年前的错误报告,其中更新为空值不起作用。该页面提到它应该被解决,我的OpenJPA版本应该更新。

OpenJPA版本是1.2.1

1 个答案:

答案 0 :(得分:0)

首先,错误信息让我误入了错误的方向。问题确实是查询的“= null”部分。

我修复了这样的查询:

t.something = :something

然后像这样的参数:

query.setParameter("something", null);