Criteria用法的小结

3 篇文章 0 订阅
1 篇文章 0 订阅

前几天做项目的时候,用到了Creiteria来查询和分页。实在好用。但本人愚笨,用了不少时间,今天有空把用法记录下来,备忘。

多条件循环查询:

String comId = param.getCompany().getId();
        List<TDepartment> depts = param.getDepartments();
        String name = param.getName() + "";
        String phoneNum = param.getPhoneNum() + "";
        Criteria criteria = getIBaseDAO().getCurrentSession().createCriteria(TCompanyDirectory.class);

        if (depts != null) {
            Disjunction dis = Restrictions.disjunction();//多条件查询准备
            for (TDepartment dept : depts) { //查询所有外键部门Id符合条件的员工
                dis.add(Restrictions.eq("department.id", "" + dept.getId()));
            }
            criteria.add(dis);
        }

        criteria.add(Restrictions.eq("company.id", comId));
        criteria.add(Restrictions.like("name", "%" + name + "%"));
        criteria.add(Restrictions.like("mobilePhone", "%" + phoneNum + "%"));
        criteria.addOrder(Order.asc("name"));

分页

        criteria.setProjection(null);
        SearchCompanyDirectoryResult searchResult = new SearchCompanyDirectoryResult();
        searchResult.setTotalCount(criteria.list().size());
        criteria.setFirstResult(beginIndex);
        criteria.setMaxResults(everyPage);
        searchResult.setCds(criteria.list());
        searchResult.setListDepts(param.getCompany().getDepartments());
        return searchResult;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值