我在action文件中是这样写的
public String execute() throws Exception {
String hql="from Yaopin y where y.gongnengfenlei like '"+gongnengfenlei+"'";
System.out.println(hql);
setPageBean(switchpageserv.queryForPage(hql,pagesize,page));
return SUCCESS;执行此action时在控制台打印出来的是Hibernate: select yaopin0_.id as id0_, yaopin0_.yaopinbianhao as yaopinbi2_0 from EMdicine.dbo.yaopin yaopin0_ where yaopin0_.gongnengfenlei like 'null'
为什么是null

解决方案 »

  1.   

    你的gongnengfenlei给它赋值了吗
      

  2.   

    写了 是这样的调用的<a href="SelectByGongneng.action?化学药品">化学药品</a><br><hr>
      

  3.   

    你这种写法当然有问题。你应该先判断一下gongnengfenlei是否为空,再考虑是否在sql后面加上y.gongnengfenlei like '"+gongnengfenlei+"'";
    所以最好的办法是:
    String hql="from Yaopin y where 1=1 ";
    if(!"".equals(gongnengfenlei) && gongnengfenlei != null){
       hql += "and y.gongnengfenlei like '%"+ gongnengfenlei +"'%";
    }