Hibernate 模糊查询 ' %?% ' SQL执行异常
今天我在使用Hibernate 的SQL预编译之后注入参数的形式写了一条模糊查询语句。刚开始我是这么写的
然后当我执行这条SQL语句后
可以看到结果是无效字符SQL异常。
然后我查了下原因,发现以上SQL在预编译时缺少 ' ' 才导致SQL异常
下面我改成这种方式
结果输出如下
这问题原因是什么呢?
原因:HQL语句中''中的?没有解析成占位符,确解析成字符串了。
所以按照要求要去掉' ',但去掉' '就会报上面一项错误。
在我咨询了同事自后,我的问题得到了解决。解决的方法就是使用SQL 中的 || 字符串连接符。
这种方式就避免了上面两种方式带来的异常问题 ,而且还是用了SQL预编译,防范了SQL注入攻击。
以上是我工作中一个小问题,特此记录,以备以后自己查阅