Java 使用参数更新和替换零件或字符串/记录
全部> 这里有一个命名查询,用于更新和替换记录Java 使用参数更新和替换零件或字符串/记录,java,sql,spring-boot,spring-data,named-query,Java,Sql,Spring Boot,Spring Data,Named Query,全部> 这里有一个命名查询,用于更新和替换记录 @NamedQuery(name=POST.UPDATE\u POST\u MESSAGE,query=“UPDATE POST p SET p.MESSAGE=REPLACE(p.MESSAGE,:value,'ANONYMOUS')” 我想将“旧字符串”参数化,但它显示了 原因:java.lang.IllegalArgumentException:您试图使用查询字符串UPDATE Post p set p.message=REPLACE(p.m
@NamedQuery(name=POST.UPDATE\u POST\u MESSAGE,query=“UPDATE POST p SET p.MESSAGE=REPLACE(p.MESSAGE,:value,'ANONYMOUS')”
我想将“旧字符串”参数化,但它显示了
原因:java.lang.IllegalArgumentException:您试图使用查询字符串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();
}
我不确定我们是否可以在replace函数中使用一个参数,我一直在到处搜索,但找不到答案。
如果不可能,是否有人可以帮助/推荐一种使用参数替换记录的方法。此处您将参数值指定给值变量,但使用值((小写)。字符串值的值是什么-为什么不使用字符串文字
“值”
?取决于用户输入的内容。??设置参数(值,值)
-大写的值
指的是参数的名称对不起,我更新了我的问题/code我建议您向我们提供整个堆栈跟踪和POST.UPDATE\u POST\u消息的值