技术版本:
SpringBoot3.0.4
场景描述:
项目正常启动,进行查询同一类型的数据源的正常运行,但一进行查询其他数据源的就报sql语句错误,查看执行的sql语句,PageHelper拼接的分页关键词有误,我的是查询sqlserver数据库,分页的关键词是TOP,但是实际拼接了MySql的分页关键词LIMIT。
原因分析:
由于我的项目用到了两种数据源,也就是多种数据源了,不是单一数据源,PageHelper默认不会自动切换数据源进行分页配置。
解决方案:
配置PageHelper自动切换数据源,自动判断数据源,springboot项目直接在配置文件进行配置:
# PageHelper分页插件
pagehelper:
# 自动获取数据库类型,选择合适的分页方式
auto-dialect: true
# 默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页
auto-runtime-dialect: true