MybatisPlus分頁(yè)排序查詢(xún)字段帶有下劃線的坑及解決
MybatisPlus分頁(yè)排序查詢(xún)字段帶有下劃線
如果使用MybatisPlus的自動(dòng)轉(zhuǎn)駝峰命名法,分頁(yè)排序查詢(xún)的字段帶有下劃線時(shí),會(huì)出問(wèn)題。
page = new Page<>(pageNo, pageSize);
OrderItem orderItem = new OrderItem();
orderItem.setColumn("create_date");
orderItem.setAsc(isAsc);
page.addOrder(orderItem);
return page;
如果這樣封裝分頁(yè)對(duì)象,字段是create_date的話,在最終執(zhí)行時(shí),order by的字段會(huì)自動(dòng)變成createDate。
但是數(shù)據(jù)庫(kù)是下劃線的,就導(dǎo)致找不到字段,如果改成createDate,他還是按createDate去排序,無(wú)法解決。不知道大家遇到過(guò)這個(gè)坑沒(méi)有。
最終我是改數(shù)據(jù)庫(kù)字段為createdate了
MybatisPlus字段名稱(chēng)有下劃線查詢(xún)?yōu)閚ull
在Mybatis-plus中自己寫(xiě)sql查詢(xún)時(shí),采用 resultType 做字段映射,帶下劃線的字段值查詢(xún)不到。
<select id="pageW_XKXMSJLXRSearch"
resultType="cjw.nic.niceasy.szyzgts.module.wy_ysgl.wy_01.wy_01_03.entity.W_XKXMSJLXR">
SELECT temp.*
FROM (
SELECT t.*
from w_xkxmsjlxr t
INNER JOIN w_xkxmjbxx wx ON t.SSXKXMJBXX_ID = wx.ID AND wx.SCBJ = 0 and t.scbj = 0
INNER JOIN s_xzqh sx ON sx.QHDM = #{qhdm} and wx.XZQHDM like CONCAT('%',sx.XJQHDMBDS,'%')
) as temp
${ew.customSqlSegment}
</select>
原因分析
Mybatis-plus默認(rèn)開(kāi)啟駝峰轉(zhuǎn)換,ssxkxmjbxx_id 字段會(huì)被轉(zhuǎn)換為 ssxkxmjbxxId ,自然查詢(xún)不到。
解決方案
(1)關(guān)閉 Mybatis-plus 駝峰轉(zhuǎn)換,這樣雖然能解決問(wèn)題,但是會(huì)影響整個(gè)項(xiàng)目,得不償失。
(2)采用 resultMap 做映射,自己寫(xiě)映射關(guān)系。
<!-- 通用查詢(xún)映射結(jié)果 -->
<resultMap id="BaseResultMap" type="cjw.nic.niceasy.szyzgts.module.wy_ysgl.wy_01.wy_01_03.entity.W_XKXMSJLXR">
<id column="ID" property="id"/>
<result column="SSXTDM" property="ssxtdm"/>
<result column="SSGCDM" property="ssgcdm"/>
<result column="SSXKXMJBXX_ID" property="ssxkxmjbxx_id"/>
<result column="SSGLDW_ID" property="ssgldw_id"/>
<result column="GLDWLX" property="gldwlx"/>
<result column="LXRJSDM" property="lxrjsdm"/>
<result column="XM" property="xm"/>
<result column="SZBM" property="szbm"/>
<result column="ZW" property="zw"/>
<result column="SJH" property="sjh"/>
<result column="BGDH" property="bgdh"/>
<result column="CZ" property="cz"/>
<result column="YX" property="yx"/>
<result column="LXDZ" property="lxdz"/>
<result column="QQ" property="qq"/>
<result column="BZ" property="bz"/>
<result column="SCBJ" property="scbj"/>
<result column="SCJL_ID" property="scjl_id"/>
<result column="CJR_ID" property="cjr_id"/>
<result column="CJSJ" property="cjsj"/>
<result column="ZHXGR_ID" property="zhxgr_id"/>
<result column="ZHXGSJ" property="zhxgsj"/>
</resultMap>
<select id="pageW_XKXMSJLXRSearch"
resultMap="BaseResultMap">
SELECT temp.*
FROM (
SELECT t.*
from w_xkxmsjlxr t
INNER JOIN w_xkxmjbxx wx ON t.SSXKXMJBXX_ID = wx.ID AND wx.SCBJ = 0 and t.SCBJ = 0
INNER JOIN s_xzqh sx ON sx.QHDM = #{qhdm} and wx.XZQHDM like CONCAT('%',sx.XJQHDMBDS,'%')
) as temp
${ew.customSqlSegment}
</select>
ps: 采用 Mybaits-plus 代碼生成器,免去寫(xiě)繁瑣映射的煩惱!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- springboot中使用mybatisplus自帶插件實(shí)現(xiàn)分頁(yè)的示例代碼
- 完美解決MybatisPlus插件分頁(yè)查詢(xún)不起作用總是查詢(xún)?nèi)繑?shù)據(jù)問(wèn)題
- 詳解MyBatisPlus如何實(shí)現(xiàn)分頁(yè)和查詢(xún)操作
- mybatisplus解除分頁(yè)限制的實(shí)現(xiàn)
- 詳解MybatisPlus3.4版本之后分頁(yè)插件的使用
- MyBatisPlus分頁(yè)時(shí)排序的實(shí)現(xiàn)
- MybatisPlus實(shí)現(xiàn)分頁(yè)查詢(xún)和動(dòng)態(tài)SQL查詢(xún)的示例代碼
- MyBatis-Plus 分頁(yè)插件使用示例
相關(guān)文章
SpringBoot靜態(tài)資源路徑配置及主頁(yè)顯示
這篇文章主要介紹了SpringBoot靜態(tài)資源路徑配置及主頁(yè)顯示,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
maven倉(cāng)庫(kù)repositories和mirrors的配置及區(qū)別詳解
這篇文章主要介紹了maven倉(cāng)庫(kù)repositories和mirrors的配置及區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Java 實(shí)現(xiàn)瀏覽器下載文件及文件預(yù)覽
這篇文章主要介紹了Java 實(shí)現(xiàn)瀏覽器下載文件及文件預(yù)覽,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Mybatis-plus查詢(xún)語(yǔ)句加括號(hào)(.or(),.and())問(wèn)題
這篇文章主要介紹了Mybatis-plus查詢(xún)語(yǔ)句加括號(hào)(.or(),.and())問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解
這篇文章主要介紹了SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
在Spring Boot中實(shí)現(xiàn)HTTPS加密通信及常見(jiàn)問(wèn)題排查
HTTPS是HTTP的安全版本,通過(guò)SSL/TLS協(xié)議為通訊提供加密、身份驗(yàn)證和數(shù)據(jù)完整性保護(hù),下面通過(guò)本文給大家介紹在Spring Boot中實(shí)現(xiàn)HTTPS加密通信及常見(jiàn)問(wèn)題排查,感興趣的朋友一起看看吧2025-05-05
向Spring IOC 容器動(dòng)態(tài)注冊(cè)bean實(shí)現(xiàn)方式
這篇文章主要為大家介紹了向Spring IOC 容器動(dòng)態(tài)注冊(cè)bean實(shí)現(xiàn)方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
Java CountDownLatch計(jì)數(shù)器與CyclicBarrier循環(huán)屏障
CountDownLatch是一種同步輔助,允許一個(gè)或多個(gè)線程等待其他線程中正在執(zhí)行的操作的ASET完成。它允許一組線程同時(shí)等待到達(dá)一個(gè)共同的障礙點(diǎn)2023-04-04

