Springboot整合mybatisplus時,使用條件構(gòu)造器排序報錯問題及解決
Springboot整合mybatisplus使用條件構(gòu)造器排序報錯
異常信息
{
"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"
}
網(wǎng)上查找得知:
數(shù)據(jù)庫中的create_time是datetime類型,mybatis-plus生成代碼時生成的是LocalDateTime單mybatis不支持該類型。
方法一
將實體類中的createtime改為DATE類型
方法二
調(diào)整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“只是提示你錯誤了,但是沒有提及是哪里出現(xiàn)問題
檢查錯誤原因
@Test public void testSqlParser() throws Exception{ String sql = ""; CCJSqlParserUtil.parse(sql); }
通過CCJSqlParserUtil.parse可以拋出SQL的問題所在,一般為關(guān)鍵字沖突、函數(shù)使用不匹配導(dǎo)致
例子
我這里的SQL為
sql: select a,b,IF(c=1 or d=2,0,1) as f from table;
這里是會提示SQL的IF關(guān)鍵字出現(xiàn)問題,但是這個SQL是可以執(zhí)行成功,Ipage的排序解析認(rèn)為這個SQL是錯誤的
而只有一個IF條件時,解析是正確的,所以這里拋出問題不一定是你的SQL問題,而是這個分頁排序的問題
sql: select a,b,IF(c=1,0,1) as f from table;
現(xiàn)在就是兩種解決辦法:
1.放棄Ipage的排序功能,將排序語句寫在SQL中
2.修改IF,在判斷中只保留一個條件
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java畢業(yè)設(shè)計實戰(zhàn)之生活旅行分享平臺的實現(xiàn)
這是一個使用了java+Springboot+JPA+Jsp+Html+js+Ajax+maven+mysql開發(fā)的生活旅行分享平臺,是一個畢業(yè)設(shè)計的實戰(zhàn)練習(xí),具有分享發(fā)布平臺該有的所有功能,感興趣的朋友快來看看吧2022-02-02通過實例了解java checked和unchecked異常
這篇文章主要介紹了通過實例了解checked和unchecked異常,Java異常分為兩種類型,checked異常和unchecked異常,另一種叫法是異常和錯誤。下面小編就帶大家來一起學(xué)習(xí)一下吧2019-06-06java遍歷http請求request的所有參數(shù)實現(xiàn)方法
下面小編就為大家?guī)硪黄猨ava遍歷http請求request的所有參數(shù)實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09使用Java反射機(jī)制提高SpringBoot的代碼質(zhì)量和可維護(hù)性
保持好的代碼質(zhì)量和遵守編碼標(biāo)準(zhǔn)是開發(fā)可維護(hù)和健壯軟件的重要方面,在本文中,我們將探討如何使用 Java 反射來提高 Spring Boot 應(yīng)用程序的代碼質(zhì)量和可維護(hù)性,需要的朋友可以參考下2023-10-10如何在Java SpringBoot項目中配置動態(tài)數(shù)據(jù)源你知道嗎
這篇文章主要介紹了SpringBoot如何在運(yùn)行時動態(tài)添加數(shù)據(jù)源,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2021-09-09springboot責(zé)任鏈模式實現(xiàn)多級校驗
責(zé)任鏈模式是將鏈中的每一個節(jié)點看作是一個對象,每個節(jié)點處理的請求不同,且內(nèi)部自動維護(hù)一個下一節(jié)點對象,下面我們來聊聊springboot如何利用責(zé)任鏈模式實現(xiàn)多級校驗吧2024-11-11Maven dependencyManagement元素標(biāo)簽的具體使用
在Maven中dependencyManagement的作用其實相當(dāng)于一個對所依賴jar包進(jìn)行版本管理的管理器,本文主要介紹了Maven dependencyManagement元素標(biāo)簽的具體使用,感興趣的可以了解一下2024-03-03SpringBoot集成PostgreSQL并設(shè)置最大連接數(shù)
本文主要介紹了SpringBoot集成PostgreSQL并設(shè)置最大連接數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11