问题描述
全部>
@NamedQuery(name = POST.UPDATE_POST_MESSAGE,query = "UPDATE Post p SET p.message = REPLACE(p.message,:value,'ANONYMOUS')"
Caused by: java.lang.IllegalArgumentException: 您尝试使用查询字符串中不存在的值名称设置参数值 UPDATE Post p SET p.message = REPLACE(p.message,“匿名”)。
这是我的 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 变量,但使用了值((小写)。