hibernate参数查询问题,50分相送!
1.出错代码:
s = null;
try {
s = getSession();
Query q = s.createQuery("from Department as department where department.Id like '%?%'");
q.setString(0, "开发部");
return q.list();
} finally {
closeSession(s);
}
2.我已经发现了问题所在,但是不知如何解决。
调试后发现问题主要是...like '%?%'中,我用了单引号,如果我直接写...like '%开发部%'并执行,是正常的。
可能是q.setString(0, "开发部");时,自动把 开发部 加上引号变成了"开发部",然后再代进?中,变成...like '%"开发部"%',所以出错。
我想了一下,解决办法可以是...like ?,然后q.setString(0, "%开发部%");,但这样总是有点不好,请问大家有什么更好的办法,解决这个参数查询问题?