缘由:
新搭建了一个springboot的单体架构,在融合原项目时,由于原项目使用tk.mybatis,新项目使用mybatisplus,所以导致,将老项目迁至新项目时,老项目中的分页失效。
展示一下模块架构
在infrastructure中使用分页:
@Override //@Cacheable public Map<String, Object> queryAll(AnimalAdminTaskRecordQueryCriteria criteria, Pageable pageable) { getPage(pageable); PageInfo<AnimalAdminTaskRecord> page = new PageInfo<>(queryAll(criteria)); Map<String, Object> map = new LinkedHashMap<>(2); map.put("content", generator.convert(page.getList(), AnimalAdminTaskRecordDto.class)); map.put("totalElements", page.getTotal()); return map; } @Override //@Cacheable public List<AnimalAdminTaskRecord> queryAll(AnimalAdminTaskRecordQueryCriteria criteria){ return baseMapper.selectList(QueryHelpPlus.getPredicate(AnimalAdminTaskRecord.class, criteria)); }
在domain和application中使用(分页不生效)
public ResponseVO page(Page page, Map<String, Object> param) { PageHelper.startPage(page.getPage(), page.getLimit()); List<UTag> uTagList = uTagMapper.selectBySelective(param); Page pages = new Page(page.getPage(), page.getLimit(), uTagMapper.countBySelective(param)); pages.setItems(uTagList); return ResponseVO.success(pages); }
添加分页配置
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.github.pagehelper.PageInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.Properties; @Configuration public class MyBatisPlusConfig { /* * 分页插件,自动识别数据库类型 * 多租户,请参考官网【插件扩展】 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } /*处理tk.mybatis 和 mybatisplus共存不能分页的情况*/ @Bean PageInterceptor pageInterceptor(){ PageInterceptor pageInterceptor = new PageInterceptor(); Properties properties = new Properties(); properties.setProperty("helperDialect", "mysql"); pageInterceptor.setProperties(properties); // 由此可进入源码, return pageInterceptor; } }
重启项目,问题解决