如何在使用Update Named Query时修复JPA / Hibernate中的“Encapsulated Expression is Missing”错误?

时间:2016-07-10 09:41:01

标签: java hibernate jpa

我在编写命名查询时遇到了拼写错误的表达式问题。

int a = em.createQuery("UPDATE MyProsess d SET d.updateDate = current_date() WHERE d.personId = :personId")

enter image description here

即使我将多个参数传递给上面的查询,它也会产生一些新错误。例如

int a = em.createQuery("UPDATE MyProsess d SET d.updateDate = current_date(), d.status=:stat WHERE d.personId = :personId")

enter image description here

任何人都可以建议如何解决此问题?

1 个答案:

答案 0 :(得分:0)

好的我明白了。请用" current_date"替换current_date();删除括号我认为HQL无法用括号识别它。现在在你的实体中你有java.util.Date而current_date将返回java.sql.Date,这需要转换。使用@Temporal(TemporalType.Date)注释标记属性updateDate以确保平滑转换。