在spring boot中使用mybatis过程中,发现有个实体的时间字段未在mapper方法执行完的封装结果中进行封装,但是却有值返回。

如下展示问题:

实体如下:

package com.sxd.swapping.domain;

import com.sxd.swapping.base.BaseBean;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.jpa.domain.Specification;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.io.Serializable;
import java.util.*;

@Entity
@Table
@Getter
@Setter
public class HuaYangArea extends BaseBean implements Serializable {
    private static final long serialVersionUID = -1851783771574739215L;

    @Column(nullable = false)
    private String areaName;

    @Column(nullable = false)
    private Long areaPerson;


    public static Specification<HuaYangArea> where(HuaYangArea huaYangArea){

        return  new Specification<HuaYangArea>() {
            @Override
            public Predicate toPredicate(Root<HuaYangArea> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                //创建查询列表
                List<Predicate> predicates = new ArrayList<>();

                //字段areaName是否查询
                String areaName = huaYangArea.getAreaName();
                if (StringUtils.isNotBlank(areaName)){
                    predicates.add(criteriaBuilder.like(root.get("areaName"),"%"+areaName+"%"));
                }
                //字段areaPerson是否查询
                Long areaPerson = huaYangArea.getAreaPerson();
                if (areaPerson != null) {
                    predicates.add(criteriaBuilder.equal(root.get("areaPerson"),areaPerson));
                }

                return criteriaQuery.where(predicates.toArray(new Predicate[predicates.size()])).getRestriction();
            }
        };
    }

}
View Code

相关文章: