如:
select * from sysuser 
where 1=1 
and hospId=:hospId
and status in (:status);我想要的是,如果:status传入的是空值则and status in (:status)整句删除。
就像如果:hospId传入的是空值,and hospId=:hospId会自动删除。或者可不可以直接在SQL语句里进行判断。

解决方案 »

  1.   

    String sql = "select * from sysuser  where 1=1   "if(hospId!= null){
       sql += " and hospId="+hospId ; 
    }
    if(status != null ){
       sql += " and status in ("+status迭代+");";
    }是不是这样否?
      

  2.   

    单纯sql语句实现好像不太现实,至少也要写成存储过程
      

  3.   


    那就是hql不支持这种功能是吧
      

  4.   

    由于语句是先写好放在XML里的,所以这个方法不行呢!
      

  5.   

    用xml文件的话,应该有标签可以实现拼sql的,比如ibatis中的xml文件有标签<isNotNull>
      

  6.   


    是公司报表框架,将语句放在XML里,而且只是在一个标签内,用的时候就读取XML在框架内运行并输出报表,所以不能去动框架内的东西,如果SQL或HQL没办法实现,那就没办法了
      

  7.   

    写存储过程吧,然后在XML里调用存储过程。
      

  8.   

    if(status != null &&!status.equals("")){
      sql += " and status in ("+status迭代+");";
    }就可以了吧.