ALL>
我在这里有一个命名查询来更新和替换记录。
@NamedQuery(name = POST.UPDATE_POST_MESSAGE, query = "UPDATE Post p SET p.message = REPLACE(p.message, :value, 'ANONYMOUS')"
我想要";旧字符串";可以参数化,但显示错误
由以下原因引起:java.lang.IollegalArgumentException:您试图使用查询字符串UPDATE Post p set p.message=REPLACE(p.message,:value,'ANONYMOUS'(中不存在的值名称设置参数值。
这是我的dao层中的代码:
private static final String VALUE = "value";
public void updateMessage(String value) {
EntityManager entityManager = createEntityManager();
entityManager.createNamedQuery(POST.UPDATE_POST_MESSAGE)
.setParameter(VALUE, value)
.executeUpdate();
}
我不确定我们是否可以在替换函数中使用参数,我一直在到处搜索,但我找不到答案。如果不可能,有人能帮助/推荐一种使用参数替换记录的方法吗。
这里您为value变量分配了参数值,但使用了value(小写(。