解決SpringBoot搭建MyBatisPlus中selectList遇到LambdaQueryWrapper報錯問題
SpringBoot搭建MyBatisPlus中selectList遇到LambdaQueryWrapper報錯
在3.4.4版本中
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>在下面代碼中,bookDao.selectList(lqw) 會報錯
String name = "Spring";
LambdaQueryWrapper<Book> lqw = new LambdaQueryWrapper<Book>();
lqw.like(name != null,Book::getName,name);
bookDao.selectList(lqw);org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'ew.sqlSegment != null and ew.sqlSegment != '' and ew.nonEmptyOfWhere'. Cause: org.apache.ibatis.ognl.OgnlException: sqlSegment [java.lang.ExceptionInInitializerError]
但是在升級版本(3.5.1)后,則可以解決該問題
mybatisPlus LambdaQueryWrapper.select報錯避坑
mybatisPlus 中LambdaQueryWrapper 的 select 方法只能調(diào)用一次,如果調(diào)用第二次就會覆蓋第一次
比如,我有一個 user 表,我只想查詢里面的 id 和name 字段。
錯誤示范
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); wrapper.select(User::getId); wrapper.select(User::getName); List<User> users = subCompanyMapper.selectList(wrapper);
這樣子查詢出來的 users 中只會有 name 字段,id 字段為 null,是因為第二次調(diào)用 select 把第一次調(diào)用覆蓋掉了。
正確的寫法
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); wrapper.select(User::getId, User::getName); List<User> users = subCompanyMapper.selectList(wrapper);
這樣查詢出來的 users 就只會有 id 和 name 字段了。 QueryWrapper 也是同理
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot 整合 Java DL4J 打造文本摘要生成系統(tǒng)
本文介紹了如何使用SpringBoot整合JavaDeeplearning4j構(gòu)建文本摘要生成系統(tǒng),該系統(tǒng)能夠自動從長篇文本中提取關(guān)鍵信息,生成簡潔的摘要,幫助用戶快速了解文本的主要內(nèi)容,技術(shù)實現(xiàn)包括使用LSTM神經(jīng)網(wǎng)絡(luò)進行模型構(gòu)建和訓(xùn)練,并通過SpringBoot集成RESTfulAPI接口2024-11-11
詳解Java Project項目打包成jar,并生成exe文件
本篇文章主要介紹了Java Project項目打包成jar,并生成exe文件,非常具有實用價值,有興趣的可以了解一下。2017-01-01
數(shù)組和二維數(shù)組感覺用王者榮耀的裝備欄來舉例解釋,應(yīng)該更易懂一些。從基礎(chǔ)開始講,后續(xù)會講到JAVA高級,中間會穿插面試題和項目實戰(zhàn),希望能給大家?guī)韼椭?/div> 2022-03-03
使用@Cacheable注解Redis時Redis宕機或其他原因連不上繼續(xù)調(diào)用原方法的解決方案
在Spring Boot應(yīng)用中,我們經(jīng)常使用??@Cacheable??注解來緩存數(shù)據(jù),以提高應(yīng)用的性能,本文將探討如何在Redis不可用時,讓??@Cacheable??注解繼續(xù)調(diào)用原方法,確保服務(wù)的可用性和穩(wěn)定性,感興趣的朋友一起看看吧2025-05-05
Java的靜態(tài)方法Arrays.asList()使用指南
Arrays.asList() 是一個 Java 的靜態(tài)方法,它可以把一個數(shù)組或者多個參數(shù)轉(zhuǎn)換成一個 List 集合,這個方法可以作為數(shù)組和集合之間的橋梁,方便我們使用集合的一些方法和特性,本文將介紹 Arrays.asList() 的語法、應(yīng)用場景、坑點和總結(jié)2023-09-09最新評論

