package com.boying.common; import com.boying.common.util.StringUtil; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.transaction.annotation.Transactional; 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.ArrayList; import java.util.List; public abstract class BaseService { protected BaseDao baseDao; protected abstract void setBaseDao(BaseDao baseDao); @Transactional(readOnly = false) public void save(T t) { this.baseDao.save(t); } @Transactional(readOnly = false) public void delete(ID id) { this.baseDao.deleteById(id); } public T findById(ID id) { return this.baseDao.getOne(id); } public List findAll() { return this.baseDao.findAll(); } public long count(Specification specification) { return this.baseDao.count(specification); } public long count(Object... paramValues) { Specification specification = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery cq, CriteriaBuilder cb) { List list = new ArrayList(); for(int i=0;i findAll(Specification specification) { return this.baseDao.findAll(specification); } public List findAll(Object... paramValues) { Specification specification = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery cq, CriteriaBuilder cb) { List list = new ArrayList(); for(int i=0;i findPage(Pageable pageable) { Page all = this.baseDao.findAll(pageable); return all; } public Page findPage(Pageable pageable, Specification specification) { Page all = this.baseDao.findAll(specification,pageable); return all; } public Page findPage(Pageable pageable,Object... paramValues) { Specification specification = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery cq, CriteriaBuilder cb) { List list = new ArrayList(); for(int i=0;i all = this.baseDao.findAll(specification,pageable); return all; } public Page findPageHaveLike(Pageable pageable,int likeNum,Object... paramValues) { Specification specification = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery cq, CriteriaBuilder cb) { List list = new ArrayList(); for(int i=0;i all = this.baseDao.findAll(specification,pageable); return all; } public List findAllByLike(int likeNum,Object...paramValues){ Specification specification = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery cq, CriteriaBuilder cb) { List list = new ArrayList(); for(int i=0;i