请问这句sql语句select * from (select * from Employees where Wedlock='0') a where a.no='67' or a.sex='女'
如果用hql该怎么写

解决方案 »

  1.   

    好像不行啊
    unable to locate HQL query plan in cache; generating (from (from WorkPlan Where uid=1) as E)
      

  2.   

    dao中代码是这样的:
     String hql="(from WorkPlan Where uid="+((User)(page.getObjCondition())).getUserId()+") as E";
     String hql2="from "+hql;
     List<WorkPlan> list=null;
     Field[] fields = WorkPlan.class.getDeclaredFields();
     
     if(null!=page.getConditions()&&page.getConditions().size()!=0)
     {
      hql2+="where E.id=-1";
          for(String cond:(List<String>)page.getConditions())
               for(Field field:fields)
               {
                if(field.getName().equals("id")||field.getName().equals("flag"))
                continue;
                       hql2+= " or " + "E."+field.getName() + " like '%"+cond+"%'";
               }
     }
     
     
     Query q=session.createQuery(hql2);
      

  3.   

    首先要清楚你要查询的类Employees  与查询条件的关系,或者就不用需要嵌套select查询,你要说清楚需求
      

  4.   

    我是想在uid为登陆用户的工作计划中再进行条件筛选
      

  5.   

    同意5楼说的,需要知道你的需求,才可以写出hql,或许根本不需要嵌套的查询语句
      

  6.   

    现在我有一个查询条件文本框和一个按钮,不输入查询条件,点按钮只查出uid=当前登陆用户id 的工作计划,有条件时则在此基础上再按条件筛选。(注:我的查询条件可以是多个用逗号隔开,因我是把查询条件封装成字符串数组,在dao中通过循环来拼凑hql)