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,在判断中只保留一个条件

总结

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

相关文章

  • Spring通过工具类实现获取容器中的Bean

    Spring通过工具类实现获取容器中的Bean

    在实际开发中,我们往往要用到Spring容器为我们提供的诸多资源,例如想要获取到容器中的配置、获取到容器中的Bean等等。本文为大家详细讲讲工具类如何获取到Spring容器中的Bean,需要的可以参考一下
    2022-06-06
  • 总结java多线程之互斥与同步解决方案

    总结java多线程之互斥与同步解决方案

    文中总结了线程互斥与同步,synchronized使用细节及原理,Reentrylock使用细节等知识,对解决Java多线程互斥与同步等问题很有效,,需要的朋友可以参考下
    2021-05-05
  • 如何通过Java实现加密、解密Word文档

    如何通过Java实现加密、解密Word文档

    这篇文章主要介绍了如何通过Java实现加密、解密Word文档,对一些重要文档,常需要对文件进行加密,查看文件时,需要正确输入密码才能打开文件。下面介绍了一种比较简单的方法给Word文件加密以及如何给已加密的Word文件解除密码保护,需要的朋友可以参考下
    2019-07-07
  • Java内存模型(JMM)及happens-before原理

    Java内存模型(JMM)及happens-before原理

    这篇文章主要介绍了java内存模型(JMM)及happens-before原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • SpringBoot导出Excel表格到指定路径的代码详解

    SpringBoot导出Excel表格到指定路径的代码详解

    Spring Boot导出Excel通常涉及到使用第三方库如Apache POI或者XlsxWriter等,它们能帮助你在Spring应用中生成并下载Excel文件,那么SpringBoot如何导出Excel表格到指定路径,本文将给大家详细的介绍一下
    2024-07-07
  • java实现折半排序算法

    java实现折半排序算法

    折半插入排序法,又称二分插入排序法,是直接插入排序法的改良版,也需要执行i-1趟插入,不同之处在于,第i趟插入,先找出第i+1个元素应该插入的的位置,假定前i个数据是已经处于有序状态。
    2015-04-04
  • IDEA整合Dubbo+Zookeeper+SpringBoot实现

    IDEA整合Dubbo+Zookeeper+SpringBoot实现

    初学者,想自己动手做一个简单的demo,本文主要介绍了IDEA整合Dubbo+Zookeeper+SpringBoot实现,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • java8新特性 stream流的方式遍历集合和数组操作

    java8新特性 stream流的方式遍历集合和数组操作

    这篇文章主要介绍了java8新特性 stream流的方式遍历集合和数组操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • springboot对象为null的属性在json中不显示的解决

    springboot对象为null的属性在json中不显示的解决

    这篇文章主要介绍了springboot对象为null的属性在json中不显示的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • SpringBoot中的定时任务和异步调用详解

    SpringBoot中的定时任务和异步调用详解

    这篇文章主要介绍了SpringBoot中的定时任务和异步调用详解,SpringBoot 定时任务是一种在SpringBoot应用中自动执行任务的机制,通过使用Spring框架提供的@Scheduled注解,我们可以轻松地创建定时任务,需要的朋友可以参考下
    2023-10-10

最新评论