当前使用版本(必填,否则不予处理)

3.4.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

达梦数据库支持mysql,oracle分页,源码默认是用的oracle方言,如果是mysql怎么办?

重现步骤(如果有就写完整)

连接信息一样

  1. 使用Oracle方言, 报错信息如下:有歧义的列名[ROW_ID]

继承PaginationInnerInterceptor 重写 findIDialect 方法 2. 使用Mysql方言,第一次调用Mysql方言,后续又调用了一次Oracle方言,报方案1错误。

报错信息

Step1 使用Oracle方言时(源码默认) org.springframework.dao.DataIntegrityViolationException:

Error querying database. Cause: dm.jdbc.driver.DMException: 第1 行附近出现错误:

有歧义的列名[ROW_ID]

The error occurred while executing a query

SQL: SELECT * FROM ( SELECT TMP., ROWNUM ROW_ID FROM ( SELECT * FROM ( SELECT TMP., ROWNUM ROW_ID FROM ( SELECT id,page_name FROM test.page_test ) TMP WHERE ROWNUM <=?) WHERE ROW_ID > ? ) TMP WHERE ROWNUM <=?) WHERE ROW_ID > ?

Cause: dm.jdbc.driver.DMException: 第1 行附近出现错误:

有歧义的列名[ROW_ID] ; 第1 行附近出现错误: 有歧义的列名[ROW_ID]; nested exception is dm.jdbc.driver.DMException: 第1 行附近出现错误: 有歧义的列名[ROW_ID]

使用Mysql方言时, 初次调用Mysql方言,后续调用Oracle方言,报之上错误。

Comment From: qmdx

参考 https://github.com/baomidou/mybatis-plus/tree/3.0/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/pagination/dialects 实现 IDialect 然后注入分页插件