hibernate 多条件组合查询 之 sql 拼接

  public static void main(String[] args) {

      
       Session session = null ;
       Transaction tx = null ;
       List list = null ;
       Criteria criteria = null ;
 
       try {
 
           session = HibernateSessionFactory.getSession();
           tx = session.beginTransaction();
 
           DetachedCriteria detachedCriteria = DetachedCriteria
                  .forClass(InfoTab. class );
          
          
           String sql= " 1=1 " ;
          
           Integer pareaId = 0; // 父地区;
           Integer careaId = 0; // 子地区;
           Integer categoryId = 0; // 类别;
           String infoPrivider = " 中介 " ; // 来源;
           String houseType= " 地下室 " ; // 房屋类型;
           Integer hxBedRoom=0; // 室;
           Integer hxLivingRoom=0; // 厅;
          
           String hzHouseStatus= " 有房出租 " ; // 合租类型 ;
           String hzRequestSex= " " ; // 性别要求;
           String fixUp= " 尚未 " ; // 装修程度 ;
           Integer lcHeightMolecuse=0; // 楼层;
           String orientation= " 东南 " ; // 朝向要求 ;
           Integer buildArea=2000; // 建筑面积;
           Integer useArea=80; // 使用面积;
           Integer rentalDigit=2000; // 租金 / 价格;
           String title= " 出租 " ; // 标题;
          
           if (pareaId!=0)
           {
              sql+= "pareaId=" + pareaId;
           }
           if (careaId!=0)
           {
              sql+= " and careaId=" + careaId;
           }
           if (categoryId!=0)
           {
              sql+= " and categoryId=" + categoryId;
           }
           if (!infoPrivider.equals( "" ))
           {
              sql+= " and infoPrivider='" + infoPrivider + "'" ;
           }
           if (!houseType.equals( "" ))
           {
              sql+= " and houseType='" + houseType + "'" ;
           }
           if (hxBedRoom!=0)
           {
              sql+= " and hxBedRoom=" + hxBedRoom;
           }
           if (hxLivingRoom!=0)
           {
              sql+= " and hxLivingRoom=" + hxLivingRoom;
           }
           if (!hzHouseStatus.equals( "" ))
           {
              sql+= " and hzHouseStatus='" + hzHouseStatus + "'" ;
           }
           if (!hzRequestSex.equals( "" ))
           {
              sql+= " and hzRequestSex='" + hzRequestSex + "'" ;
           }
           if (!fixUp.equals( "" ))
           {
              sql+= " and fixUp='" + fixUp + "'" ;
           }
           if (lcHeightMolecuse!=0)
           {
              sql+= " and lcHeightMolecuse=" + lcHeightMolecuse;
           }
           if (!orientation.equals( "" ))
           {
              sql+= " and orientation='" + orientation + "'" ;
           }
           if (buildArea!=0)
           {
               sql+= " and buildArea=" + buildArea;
           }
           if (useArea!=0)
           {
              sql+= " and useArea=" + useArea;
           }
           if (rentalDigit!=0)
           {
              sql+= " and rentalDigit=" + rentalDigit;
           }
           if (!title.equals( "" ))
           {
              sql+= " and title like '%" + title + "%'" ;
           }
           sql+= " order by id desc" ;
          
           System. out .println(sql);
 
           detachedCriteria.add(Restrictions.sqlRestriction(sql));
 
           criteria = detachedCriteria.getExecutableCriteria(session);
 
           list = criteria.list();
          
           for ( int i=0;i<list.size();i++)
           {
              InfoTab infoTab = (InfoTab)list.get(i);
              System. out .println(infoTab.getTitle() + " " + infoTab.getCategoryId() + " " + infoTab.getPareaName() + " " + infoTab.getCareaName() + " " + infoTab.getHouseType() + " " + infoTab.getInfoPrivider());
           }
 
           tx.commit();
 
       } catch (HibernateException he) {
           he.printStackTrace();
       }
    }

本文出自 “霜之哀伤” 博客,请务必保留此出处http://maomao.blog.51cto.com/115985/33883

本文出自 51CTO.COM技术博客

你可能感兴趣的:(sql,Hibernate,session,String,null,Integer)