Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

数据库Sqlserver2012 与 PageHelper 报错 #74

Open
yf-chen opened this issue Jul 19, 2019 · 2 comments
Open

数据库Sqlserver2012 与 PageHelper 报错 #74

yf-chen opened this issue Jul 19, 2019 · 2 comments

Comments

@yf-chen
Copy link

yf-chen commented Jul 19, 2019

配置
image

PageHelper.offsetPage(pageNum, pageSize);
List<Map<String, Object>> resultList = gridDao.queryListForWaitCheck(param);
PageInfo<Map<String, Object>> pageInfo = new PageInfo<Map<String, Object>>(resultList);
image
异常信息:除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
换种写法

PageHelper.offsetPage(pageNum, pageSize).setOrderBy("f.MAX_OP_TIME DESC");
List<Map<String, Object>> resultList = gridDao.queryListForWaitCheck(param);
PageInfo<Map<String, Object>> pageInfo = new PageInfo<Map<String, Object>>(resultList);
image
抛出异常提示信息:[converToOrderBySql,67] - 处理排序失败: net.sf.jsqlparser.JSQLParserException,降级为直接拼接 order by 参数

自己百思不得其解,在网上找了些资料,有很多朋友都遇到这种问题?这是怎么回事啊?请笔者在百忙之中抽出时间帮忙解答一下!是我用的方法不对吗?

@yf-chen
Copy link
Author

yf-chen commented Jul 19, 2019

版本:

        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.12</version>
    </dependency>

@abel533
Copy link
Contributor

abel533 commented Jul 25, 2019

下面几个参数都是针对默认 dialect 情况下的参数。使用自定义 dialect 实现时,下面的参数没有任何作用。

helperDialect:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值:
oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby
特别注意:使用 SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005 的方式进行分页。
你也可以实现 AbstractHelperDialect,然后配置该属性为实现类的全限定名称即可使用自定义的实现方法。

或者:

5.1.6 - 2018-09-05
增加参数 useSqlserver2012,设置为 true 后,使用 sqlserver2012(Dialect) 作为 SqlServer 数据库的默认分页方式,这种情况在动态数据源时方便使用。默认使用的低版本(05,08)分页方式。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants