用hibernate sql命名参数查询数据库时报错:could not locate named parameter [uname]
could not locate named parameter [uname]
代码:
sql.append(" AND t.uname LIKE '%:uname%' ");
赋值
query.setParameter("uname", condition.get("uname"));
但报错了。
原来是因为在代码中
'%:uname%'
被单引号包起来了,这样hibernate默认它为字符串,则不再解析里面,所以报找不到的错。
解决
//代码
sql.append(" AND t.uname LIKE :uname ");
//赋值
query.setParameter("uname", "%" + condition.get("uname") + "%");