SQL语句改成HQL语句

select * from QuestionInfo where sort = '外科'
这个SQL语句再查询编辑器中运行都没有问题

将其改为HQL使用再hibernate中 运行且输出
list里就没有任何值

from QuestionInfo as qinfo where qinfo.sort = '外科'

这到底是怎么回事

String sortBySurgery = "from QuestionInfo as qinfo where qinfo.sort = ? ";
List list = getHibernateTemplate().find(sortBySurgery,"外科");
return list;

[code="java"]from QuestionInfo as qinfo where qinfo.sort = '外科' [/code]
改成
[quote]from QuestionInfo qinfo where qinfo.sort = '外科' [/quote]

[code="java"]from QuestionInfo as qinfo where qinfo.sort = '外科'[/code]
[size=medium]改成[/size]
[code="java"]from QuestionInfo qinfo where qinfo.sort = '外科'[/code]
[size=medium]就好用了
你试试[/size]

List result = null;
String hql = "from QuestionInfo cl where cl.flag=0 and cl.sort=:sort";
Session session = getSession();
Transaction tran = session.beginTransaction();
Query query = session.createQuery(hql);
query.setParameter("sort", "外科");
result = query.list();
tran.commit();

    if(result.isEmpty()){
        return false;
    }
    return true;

把AS去掉.

from QuestionInfo qinfo where qinfo.sort = '外科'

as没用的

from QuestionInfo qinfo where qinfo.sort = '外科'

from QuestionInfo as qinfo where qinfo.sort = '外科'
或者
from QuestionInfo qinfo where qinfo.sort = '外科' 不要as
都是可以的,我怀疑是楼主在某个细节上出了问题
sql能够查询出来,那么这条对应的hql应该也是可以查询出来的

你仔细检查检查你的 QuestionInfo 这个实体类中是否有 sort 这个属性

也就是你这句sql:select * from QuestionInfo where sort = '外科'
中的sort字段对应的实体类属性是否就为sort

我觉得出这种问题很大原因都是因为不细心造成的!

[size=medium]楼上那位大哥
和sort有关系吗?
要查sql是要用sqlQuery的
还得在回掉里用[/size]