diff --git a/eladmin-common/src/main/java/me/zhengjie/base/BaseRepository.java b/eladmin-common/src/main/java/me/zhengjie/base/BaseRepository.java index 6c765921..4f9438bc 100644 --- a/eladmin-common/src/main/java/me/zhengjie/base/BaseRepository.java +++ b/eladmin-common/src/main/java/me/zhengjie/base/BaseRepository.java @@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.IService; import com.google.common.collect.Sets; import me.zhengjie.db.ElSpecification; +import me.zhengjie.exception.BadConfigurationException; import me.zhengjie.utils.QueryHelp; import me.zhengjie.utils.StringUtils; import me.zhengjie.utils.WhereFun; @@ -341,7 +342,12 @@ public class BaseRepository, J extends JpaRepository mpFindAll(Specification spec) { - ElSpecification specifications = (ElSpecification) spec; + ElSpecification specifications; + try { + specifications = (ElSpecification) spec; + } catch (ClassCastException ex) { + throw new BadConfigurationException("使用Mybatis Plus 必须使用 me.zhengjie.db.ElSpecification", ex); + } final QueryWrapper queryWrapper = specifications.getQueryWrapper(); return mpService.list(queryWrapper); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java index 478a80b5..9b6c7d72 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/service/impl/JobServiceImpl.java @@ -57,13 +57,14 @@ public class JobServiceImpl implements JobService { @Override public Map queryAll(JobQueryCriteria criteria, Pageable pageable) { final Specification jobSpecification = (root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder); - Page page = jobRepository.findAll(new ElSpecification(jobSpecification, criteria,Job.class), pageable); + Page page = jobRepository.findAll(new ElSpecification(jobSpecification, criteria, Job.class), pageable); return PageUtil.toPage(page.map(jobMapper::toDto).getContent(), page.getTotalElements()); } @Override public List queryAll(JobQueryCriteria criteria) { - List list = jobRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)); + final Specification jobSpecification = (root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder); + List list = jobRepository.findAll(new ElSpecification(jobSpecification, criteria, Job.class)); return jobMapper.toDto(list); }