首页>代码>Spring Data JPA+jquery分页展示控件kkpager实现分页查询DEMO>/JPA/src/main/java/com/fendo/service/imp/FamilyServiceImp.java
package com.fendo.service.imp;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;

import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.transaction.Transactional;

import org.springframework.stereotype.Service;

import com.fendo.dao.FamilyDao;
import com.fendo.entity.FamilyMember;
import com.fendo.service.FamilyService;
import com.fendo.util.PageUtils;

@Service
@Transactional
public class FamilyServiceImp implements FamilyService{

	@Autowired
	public FamilyDao familyDao;
		
	@Override
	public List<FamilyMember> getAll() throws Exception {
		return (List<FamilyMember>) this.familyDao.findAll();
	}

	@Override
	public FamilyMember save(FamilyMember familyMember) throws Exception {
		return familyDao.save(familyMember);
	}

	/**
     * 查询用户信息列表(支持分页和多条件查询)。
     * 
     */
	@Override
    public Map<String, Object> getUserBySearch(Map<String, String> familyArgs, final String sortType) throws Exception {

        // 获得分页对象pageable,并且在pageable中页码是从0开始,设定按照sortType升序排列
        Pageable pageable = PageUtils.buildPageRequest(Integer.valueOf(familyArgs.get("pageNum")),
                Integer.valueOf(familyArgs.get("pageSize")), sortType);
        Page<FamilyMember> objPage = familyDao.findAll(new Specification<FamilyMember>() {

            public Predicate toPredicate(Root<FamilyMember> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
                List<Predicate> lstPredicates = new ArrayList<Predicate>();

                if (StringUtils.isNotBlank(familyArgs.get("FamilyName"))) {
                    lstPredicates.add(cb.like(root.get("familyName").as(String.class), "%" + familyArgs.get("FamilyName") + "%"));
                }
                if (StringUtils.isNotBlank(familyArgs.get("Mobile"))) {
                    lstPredicates.add(cb.like(root.get("mobile").as(String.class), "%" + familyArgs.get("Mobile") + "%"));
                }
               
                Predicate[] arrayPredicates = new Predicate[lstPredicates.size()];
                return cb.and(lstPredicates.toArray(arrayPredicates));
            }
        }, pageable);

        return PageUtils.getPageMap(objPage);
    }

}
最近下载更多
小肥羊  LV16 2020年6月19日
a4429674  LV1 2019年11月6日
bdkwxz  LV10 2019年9月26日
wangmin123  LV3 2019年2月21日
123456听说  LV10 2019年1月23日
linzehao  LV8 2019年1月4日
VICTORYll  LV15 2018年12月11日
You123321  LV1 2018年12月6日
a332705639  LV5 2018年10月12日
zhengdh123  LV10 2018年7月3日
最近浏览更多
微信网友_6040315240812544  LV8 2022年10月21日
Altria  LV5 2021年8月13日
lianghui  LV13 2021年7月7日
阳止初四  LV8 2021年6月6日
徐万强  LV9 2021年6月2日
xuexizhuanyong23  LV16 2021年2月9日
jay1992  LV14 2021年1月6日
xiaobaiyihao 2020年10月27日
暂无贡献等级
hjh844615  LV6 2020年9月29日
小肥羊  LV16 2020年6月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友