十:区别Filter排序与hql排序,带筛选条件

区别Filter排序与hql排序,带筛选条件

 

Action:

 

public String listCompany() throws Exception {

      List<PropertyFilter> filters = PropertyFilter.buildFromHttpRequest(Struts2Utils.getRequest());

      page.setPageNo(Integer.parseInt(Struts2Utils.getRequest()

           .getParameter("page")));

      page.setPageSize(Integer.parseInt(Struts2Utils.getRequest()

           .getParameter("pagesize")));

      //设置默认排序方式

      if (!page.isOrderBySetted()) {

        page.setOrderBy("companyid");

        page.setOrder(Page.DESC);

      }

[d1]    page = companyManager.searchCompany(page, filters) ;

      String result = reverseLigerGridJsonData(page) ;

      Struts2Utils.renderJson(result) ;

      returnNONE;

   }

 

Service:

方式一:filter排序

@Transactional(readOnly = true)

   public Page<Company> searchCompany(final Page<Company> page, final List<PropertyFilter> filters) {

      return companyDao.findPage(page, filters);

   }

方式二:

//按筛选条件查询商家信息

   @Transactional(readOnly = true)

   public Page<Company> searchCompany(final Page<Company> page, final List<PropertyFilter> filters) {

      //开始-----------------------------------------------

      String hql ="select c from Company c where 1=1";

      for(PropertyFilter filter : filters){

        String fieldname = filter.getPropertyName();

        String filedValue = filter.getMatchValue().toString();

            if (fieldname.equals("companycode")&&!filedValue.equals(""))

            hql += " and c.companycode like '%"+filedValue+"%'";

            if (fieldname.equals("companyname")&&!filedValue.equals(""))

             hql +=" and c.companyname like '%"+filedValue+"%'";

            if (fieldname.equals("status")&&!filedValue.equals("")){

            if(filedValue.equals(""))

              continue;

            if(filedValue.contains(";")){

               String statusStr=filedValue.replace(";", ",");

                  hql +=" and c.status in ("+statusStr+")";

            }else{

               hql +=" and c.status in ("+filedValue+")";

            }             

            }

      }

      if (!page.isOrderBySetted()) {

        hql += " order by companyid desc";

      }

      else

      {

        hql += " order by "+page.getOrderBy()+" "+page.getOrder();

      }

[d2]    //结束-----------------------------------------------

      returncompanyDao.findPage(page, hql[d3] );

   }

 

Dao:


 [d1]

 [d2]Hql把排序加进来

 [d3]hql不用filter排序的时候需要在manager写上面一部分代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值