mybatis與stream使用小記


1-mybatis解決limit語句限制

This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery異常解決方法

例子1:mybatis-plus 1層子查詢嵌套,mysql不支持LIMIT/IN/ANY/SOME

// 查詢最近100條數據
List<SendNsqMessageDO> allfeeYopProtocolDTOs = sendNsqMessageMapper.selectList(
new QueryWrapper<SendNsqMessageDO>()
.inSql("id","select id from send_nsq_message order by created_at desc limit 100")
);

解決辦法:2層子查詢

// 查詢最近100條數據
List<SendNsqMessageDO> allfeeYopProtocolDTOs = sendNsqMessageMapper.selectList(
new QueryWrapper<SendNsqMessageDO>()
.inSql("id","select t.id from (select * from send_nsq_message order by created_at desc limit 100) as t")
);

 

2-stream快速實現求和

目的:結合mybatis查詢結果,快速求和

 

 

普通解決辦法:求出列的List,然后遍歷相加,求和

 

 

簡化版:

int oweQuotaSum = alldebtRecords.stream().mapToInt(t->Math.toIntExact(t.getOweQuota())).sum();
int oweQuotaSnapshotSum = alldebtRecords.stream().mapToInt(t->Math.toIntExact(t.getOweQuotaSnapshot())).sum();
int recoveryQuotaSum = alldebtRecords.stream().mapToInt(t->Math.toIntExact(t.getRecoveryQuota())).sum();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM