hibernate 和jpa中的模糊查询急问

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:48:01
我写一个给予hibernate spring jpa struts2的web application 其中有用到模糊查询但是好像不管我怎么用都查询不到数据
情况如下
String sql = "select s from student_info s where s.username like '%"+username+"%'";
Query query = entityManager.createQuery(sql);
List list = query.getResultList();
list 总是是空的,但是我把他生成的语句复制到sql 控制台运行要可以得到我要的数据
后来我要试了下把username换成一个完整的用户名把%好给去掉即如下

1. String sql = "select s from student_info s where s.username like '"+username+"'";
2. Query query = entityManager.createQuery(sql);
3. List list = query.getResultList();

String sql = "select s from student_info s where s.username like '"+username+"'";
Query query = entityManager.createQuery(sql);
List list = query.getResultList();

还是不行 复制hibernate生成的sql语句到mysql控制台运行就可以啦
不知道那为大虾能否赐教你们是怎么解决类似问题的或者用什么替代 我以前只用hibernate时好像有个方法可以运行自己写的sql语句 就可以解决问题啦 但是在jpa下好像没的这个接口可

"select s from student_info s where s.username like '%"+username+"%'";

》》》》》》》》》》》》》
from的类名称,里面用的都是类的字段名称
还有,像这样的最好是用QBC查询,这样更方便
并且提示你写程序不要'"+username+"'
如果别有用心的人,你就裸体了