pagehelper / Mybatis-PageHelper

Mybatis通用分页插件
https://mybatis.io
MIT License
12.21k stars 3.13k forks source link

OceanBase多数据源下无法正确识别 #758

Closed RenYueHD closed 1 year ago

RenYueHD commented 1 year ago

我的项目中需要同时使用oceanbase的mysql模式和oracle模式 在我配置了动态数据源并使用PageAutoDialect分别注册了oceanbase:oracle=OracleDialect,oceanbase=MysqlDialect后,PageAutoDialect的fromJdbcUrl在识别url时并没有优先匹配oracle,而是优先匹配了mysql,因为该方法对dialectAliasMap的keySet进行循环时,keySet并不是按照我添加的顺序进行循环的,导致在这种场景下无法正确对oracle和mysql双模式的数据源进行分页,恳请优化

abel533 commented 1 year ago

如果和顺序有关,dialectAliasMap换LinkedHashMap能否解决?可以来个PR。

RenYueHD commented 1 year ago

如果和顺序有关,dialectAliasMap换LinkedHashMap能否解决?可以来个PR。

map的keySet返回的是Set 而java的Set接口并不保证排序 所以不应该用 需要单独建立一个List来存储key来循环 但不知道是否有更好的办法