eclipse抱怨我的JPA NamedQuery

时间:2018-09-08 00:25:41

标签: java eclipse named-query

由于某种原因,eclipse IDE抱怨我的JPQL @NamedQuery

  

输入参数只能在WHERE子句或HAVING子句中使用   查询。

  

关联字段不能在更新项目路径中使用   表达。

这是我的查询

"UPDATE ereturn er " +
        "SET " +
        "er.shipper = :shipper, " +
        "er.consignee = :consignee, " +
        "er.notes = :notes, " +
        "er.pickupDateTime = :pickupDate, " +
        "er.productItems = :productItems, " +
        "er.returned = :returned, " +
        "er.returnMethod = :returnMethod, " +
        "er.rma = :rma, " +
        "er.scanDateTime = :scanTime, " +
        "er.status = :status, " +
        "er.dispatchedDate = :dispatchedTime, " +
        "er.barcode = :barcode, " +
        "er.groupName = :groupName " +
        "WHERE er.id = :id"

有什么想法吗?

非常感谢

2 个答案:

答案 0 :(得分:0)

JPQL不是更新语句的最佳选择,最好只是从持久性上下文更新对象或使用本机查询

答案 1 :(得分:0)

如果您的JPA版本是2.0或更低版本,则只能使用WHERE子句中的参数。

它从2.1版及更高版本开始更改,如您在JSR 338: Java TM Persistence API, Version 2.1的4.6.4节中所见

  

输入参数只能在WHERE子句或HAVING子句中使用   查询或作为SET子句中更新项的新值   更新声明。