关于HQL查询语句问题

来源:百度知道 编辑:UC知道 时间:2024/07/13 15:22:03
这个方法的目的是实现模糊查询,可是运行有错误,请高手给指点一下到底是哪的错,并给出正确的实现,非常感谢!
public List finds(String col,String value){
Session s = HibernateSessionFactory.getSession();

if("".equals(value)){
Query q = s.createQuery("from subject ");
return q.list();
}else{

Query q = s.createQuery("from subject where ? like ?");
q.setParameter(0, col);
q.setParameter(1, value);
return q.list();
}
}
我有那个领域对象类名叫Subject,我想作模糊查找col是列名前的页面有一个combox可以在里面选对什么列进行模糊查找,在text里输入查找字符,值变量为value。

Query q = s.createQuery("from subject where ? like ?");

->

Query q = s.createQuery("from subject where "+col+" like ?");
q.setParameter(0, value);

“where ? ...” 这个不能是问号,这个不是放parameter的位置

首先我问下 from subject 这句中 subject 这个实体存在么(就是与数据库的关联类 如果存在 那你就犯了类名大小写的错误 , 如果不存在 那自然不好使)
模糊查询语句一般是这样地
from 实体名 别名 where 条件1 and 条件2.....
也可以
实体名 别名(可以这么写...)

其次
你把错误信息发上来啊大佬...
你把错误信息发上来啊大佬...
你把错误信息发上来啊大佬...
你把错误信息发上来啊大佬...

楼上说的貌似对....where 后面放?这个没见过 一般都是值放? 字段放...没见过,而且那么查也是多余..

你把错误信息发上来啊大佬...
你把错误信息发上来啊大佬...
你把错误信息发上来啊大佬...
你把错误信息发上来啊大佬...