我有一个像这样的命名查询:
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
答案 0 :(得分:0)
首先,错误信息让我误入了错误的方向。问题确实是查询的“= null”部分。
我修复了这样的查询:
t.something = :something
然后像这样的参数:
query.setParameter("something", null);