SpringBoot的多表查询和模糊查询;easyui

**HTML:**

//工具栏
			var toolbar = [ {
			{
				id : 'button-search',
				text :'查询',
				iconCls: 'icon-search',
				handler : function(){
                    $('#searchForm').form('clear');
					$("#searchWindow").window('open');
				}
			}];

		$(function(){
				// 先将body隐藏,再显示,不会出现页面刷新效果
				$("body").css({visibility:"visible"});
				
			// 区域管理数据表格
			$('#grid').datagrid( {
				iconCls : 'icon-forward',
				fit : true,
				border : false,
				rownumbers : true,
				striped : true,
				pageList: [29,58,100],
				pagination : true,
				toolbar : toolbar,
				url : "../../area_pageQuery",
				idField : 'id',
				columns : columns,
				onDblClickRow : doDblClickRow
			});

DAO:

public interface AreaDao extend JpaRepository<Area,String>,JpaSpecificationExecutor<Area> {
}

service:

/**
     * 模糊查询及分页查询
     * @param page
     * @param rows
     * @return
     */
    public Page<Area> pageQuery(int page, int rows,Area area);

serviceImpl:
/**
* 分页查询
* @param page
* @param rows
* @return
*/
@Override
public Page pageQuery(int page, int rows,Area area) {

    Specification<Area> specification = new Specification<Area>() {
        @Override
        public Predicate toPredicate(Root<Area> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder cb) {

            List<Predicate> list = new ArrayList<Predicate>();

            // 简单单表查询
            if (StringUtils.isNotBlank(area.getProvince())) {
                Predicate p1 = cb.equal(root.get("province").as(String.class), area.getProvince());
                list.add(p1);
            }
            if (StringUtils.isNotBlank(area.getCity())) {
                Predicate p2 = cb.like(root.get("city").as(String.class), "%" + area.getCity() + "%");
                list.add(p2);
            }
            if (StringUtils.isNotBlank(area.getDistrict())) {
                Predicate p3 = cb.equal(root.get("district").as(String.class), area.getDistrict());
                list.add(p3);
            }
            return cb.and(list.toArray(new Predicate[0]));
        }
        };
        PageRequest example = PageRequest.of(page - 1, rows);
        Page<Area> areas = areaDao.findAll(specification,example);
        return areas;
}

补充:

	// 多表查询
	                Join<Courier, Standard> standardJoin = root.join("standard",JoinType.INNER);
	                if (courier.getStandard() != null&& StringUtils.isNotBlank(courier.getStandard().getName())) {
	                    Predicate p4 = cb.like(standardJoin.get("name").as(String.class), "%"+ courier.getStandard().getName() + "%");
	                    list.add(p4);
	                }

controller:

 @RequestMapping("/area_pageQuery")
    @ResponseBody
    public Map<String, Object> pageQuery(int page, int rows, Area area) {
    Page<Area> areas = areaService.pageQuery(page, rows, area);
    HashMap<String, Object> map = new HashMap<>();
    map.put("total", areas.getTotalElements());
    map.put("rows", areas.getContent());
    return map;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值