Springboot整合mybatisplus时,使用条件构造器排序报错问题及解决

 更新时间:2024年04月19日 14:45:04   作者:文戌  
这篇文章主要介绍了Springboot整合mybatisplus时,使用条件构造器排序报错问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Springboot整合mybatisplus使用条件构造器排序报错

异常信息

{
    "timestamp": "2022-03-23T12:04:29.797+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "Error attempting to get column 'create_time' from result set.  Cause: java.sql.SQLFeatureNotSupportedException\n; null; nested exception is java.sql.SQLFeatureNotSupportedException",
    "path": "/partJob/list"
}

网上查找得知:

数据库中的create_time是datetime类型,mybatis-plus生成代码时生成的是LocalDateTime单mybatis不支持该类型。

方法一

将实体类中的createtime改为DATE类型

方法二

调整Druid版本,升级到1.1.21

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>

Mybatis使用IPAGE排序错误

错误信息

//分页排序
page.setOrders(OrderItem.descs("publish_time"));
 
报错信息
failed to concat orderBy from IPage, exception=null
这里”failed to concat orderBy from IPage, exception=null“只是提示你错误了,但是没有提及是哪里出现问题

检查错误原因

@Test
public void testSqlParser() throws Exception{
        String sql = "";
        CCJSqlParserUtil.parse(sql);
}

通过CCJSqlParserUtil.parse可以抛出SQL的问题所在,一般为关键字冲突、函数使用不匹配导致

例子

我这里的SQL为

sql: select a,b,IF(c=1 or d=2,0,1) as f from table;

这里是会提示SQL的IF关键字出现问题,但是这个SQL是可以执行成功,Ipage的排序解析认为这个SQL是错误的

而只有一个IF条件时,解析是正确的,所以这里抛出问题不一定是你的SQL问题,而是这个分页排序的问题

sql: select a,b,IF(c=1,0,1) as f from table;

现在就是两种解决办法:

1.放弃Ipage的排序功能,将排序语句写在SQL中

2.修改IF,在判断中只保留一个条件

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解SpringBoot程序启动时执行初始化代码

    详解SpringBoot程序启动时执行初始化代码

    这篇文章主要介绍了详解SpringBoot程序启动时执行初始化代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • SpringBoot中web模版数据渲染展示的案例详解

    SpringBoot中web模版数据渲染展示的案例详解

    凭借 Spring Framework 的模块、与你最喜欢的工具的大量集成以及插入你自己的功能的能力,Thymeleaf 是现代 HTML5 JVM Web 开发的理想选择——尽管它还有更多功能,本文重点给大家介绍SpringBoot中web模版数据渲染展示,需要的朋友可以参考下
    2022-01-01
  • 浅谈log4j 不打印异常堆栈

    浅谈log4j 不打印异常堆栈

    这篇文章主要介绍了浅谈log4j 不打印异常堆栈,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • java转换时区时间过程详解

    java转换时区时间过程详解

    这篇文章主要介绍了java转换时区时间过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 在SpringBoot中配置Thymeleaf的模板路径方式

    在SpringBoot中配置Thymeleaf的模板路径方式

    这篇文章主要介绍了在SpringBoot中配置Thymeleaf的模板路径方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Spring boot集成Kafka+Storm的示例代码

    Spring boot集成Kafka+Storm的示例代码

    这篇文章主要介绍了Spring boot集成Kafka+Storm的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Spring实战之抽象Bean和子Bean定义与用法示例

    Spring实战之抽象Bean和子Bean定义与用法示例

    这篇文章主要介绍了Spring实战之抽象Bean和子Bean定义与用法,结合实例形式分析了Spring抽象Bean和子Bean相关配置、定义与使用操作技巧,需要的朋友可以参考下
    2019-11-11
  • java虚拟机学习高级篇

    java虚拟机学习高级篇

    在本篇文章里小编给大家整理了关于java虚拟机学习高级篇的相关内容,有兴趣的朋友们跟着学习参考下。
    2019-06-06
  • 使用Java实现串口通信

    使用Java实现串口通信

    这篇文章主要为大家详细介绍了使用Java实现串口通信的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 深入剖析Java中Map.Entry的方法与实战应用

    深入剖析Java中Map.Entry的方法与实战应用

    在Java集合框架中,Map.Entry扮演着连接键值对的桥梁角色,作为Map接口的内部接口,它封装了键值对的本质,是高效处理映射数据的核心工具,下面我我们就来深入剖析Map.Entry的概念,方法及实战应用
    2025-06-06

最新评论