可能重复:
使用休眠查询:冒号被视为参数/转义冒号
我们正在尝试编写本机查询。当我们尝试更新包含 的特定列值时,": "
会出现异常。
这是生成的查询
UPDATE MY_TABLE SET DESCRIPTION = "Test 01 : ABC",LAST_UPDATE_TS =
CURRENT_TIMESTAMP ,LAST_UPDATE_USER_ID = 111 WHERE MY_ID =123
我认为问题在于DESCRIPTION数据,其中包含': '
我们得到这个错误
nested exception is org.hibernate.QueryException:Space is not allowed after
parameter prefix ':' ' UPDATE
MY_TABLE SET DESCRIPTION = "MY Test 01 : ABC",LAST_UPDATE_TS =
CURRENT_TIMESTAMP, LAST_UPDATE_USER_ID = 111 WHERE MY_ID =123'
这是负责查询的 Java 代码:
StringBuffer strQry = new StringBuffer(" UPDATE MY_TABLE SET ");
if(myForm.getDescription() != null){
if(flag == 1){
strQry.append(",");
}
strQry.append(" DESCRIPTION = \"" + myForm.getDescription().trim()+ "\" ");
flag = 1;
知道为什么会发生此错误以及我们如何解决它吗?