自学内容网 自学内容网

springboot+PageHelper在多数据源的情况下,数据库方言乱套怎么解决?

web项目必然会涉及到数据分页,而PageHelper是个不错的插件,能方便不少事。

在最近的一个项目中,需要聚合多方数据,就涉及到配置多数据源(各方使用的不是一种类型的数据库),开始以为正常配置就好了,结果问题了,就是数据的分页错了,不是报oracle数据库使用了limit,就是mysql数据库使用了rownum,还有比如mysql 的分页写法是limit 10,10 而pgsql的写法是limit 10 offset 10 数据库方言乱了。

这里不讲怎么配置多数据源,仅仅标注在处理不同数据库厂商的多数据源时,PageHelper隐藏的一个坑。

坑:正常通过@bean配置的方言信息没有其效果(不是没起效果,只是在程序运行中,方言配置没有动态切换,导致始终使用的是最先执行的那套),只能通过配置文件配置。

pagehelper:
  autoRuntimeDialect: true

还好pagehelper插件支持配置文件参数配置,在查询的过程中能够自动识别数据源的类型,从而生成相应的查询sql,而不报错。


原文地址:https://blog.csdn.net/m0_37899908/article/details/138002695

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!