首页 > 其他分享 >【转载】Mybatis Plus QueryWrapper结合lambda表达式使用distinct的方法

【转载】Mybatis Plus QueryWrapper结合lambda表达式使用distinct的方法

时间:2023-05-25 09:47:38浏览次数:48  
标签:QueryWrapper distinct list month Plus Mybatis lambda

Mybatis Plus QueryWrapper的lambda用起来感觉挺爽的,有点JPA的感觉,也不需要拼很多字符串,可以利用IDE的代码检查功能,总之好处多多,停不下来。最近遇到一个问题,需要对SQL查询的结果做去重处理,自然想到了使用 distinct。
对于复杂的SQL语句,一般使用自定义XML的方式,但是这么个小问题,XML能不写就尽量不写了。查看了一下api,也没有找到针对distinct的lambda用法,只有select(String… sqlSelect)的方法可以设置查询字段,看样子只能结合使用了。

例子1

List<Detail> list = list(new QueryWrapper<Detail>().select("DISTINCT `day`", "month").lambda()
                .eq(Detail::getUserId, userId).eq(Detail::getMonth, month));

生成的SQL:

SELECT DISTINCT `day`,month FROM detail WHERE user_id = ? AND month = ? 

例子2

List<Detail> list = list(new QueryWrapper<Detail>().select("sum(skipping_duration) totalDuration", "count(1) totalTimes")
                .lambda().eq(Detail::getUserId, userId));

 


————————————————
版权声明:本文为CSDN博主「classyex」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/aouoy/article/details/108686746

标签:QueryWrapper,distinct,list,month,Plus,Mybatis,lambda
From: https://www.cnblogs.com/haohaiyou/p/17430243.html

相关文章

  • 找不到“element-plus/global”的类型定义文件。 程序包含该文件是因为: 在 compilerO
    问题描述在tsconfig.json文件里types字段添加"element-plus/global"后出现报错。问题原因TS升级到5.x带来的规范性问题。可以通过npmviewtypescriptversion命令查看下你的TS版本。深层分析参考这篇:https://github.com/element-plus/element-plus/issues/12119问题解决1......
  • element-plus 组件样式修改
    el-form-item间距.el-form-item{margin-bottom:3px;}Elmessage消息换行/*失败消息*/.el-message--error{white-space:pre-line}/*成功消息*/.el-message--success{white-space:pre-line}......
  • 【cpluscplus教程翻译】Special members
    特殊成员特殊成员函数是那些在特定情况被隐式定义的成员函数:默认构造、析构、拷贝构造、拷贝赋值、移动构造、移动赋值(注意构造和赋值的区别,只要是内存有没有新增),让我们逐个学习一下默认构造函数(defaultconstructor)默认构造函数在没给任何参数初始化对象时调用如果一个类的......
  • 【element-plus】Table表格横向滚动条显示不正确解决办法
    滚动条bug展示如下:造成bug原因排查:由于对Table表格进行了二次封装,传递props属性时,传递了align属性,代码实现如下图:解决办法删除align属性,滚动条样式正常回显在二次封装组件时,需要保证组件属性的输入和透出,尽量避免不必要的bug......
  • //#ifdef __cplusplus extern "C" 含义
    #ifdef__cplusplusextern"C"{#endif#import<UIKit/UIKit.h>@interfaceViewController:UIViewController@property(nonatomic,readonly)UIView*headView;@end//#ifdef__cplusplusextern"C"{#endif//一段代码#ifdef__cplu......
  • 【cpluscplus教程翻译】Classes (II)
    操作符重载本质上,类就是在C++代码里定义了新的类型,在代码中,类型不仅用来构造和赋值,还可以用操作符进行运算,考虑基础类型的加减乘除inta,b,c;a=b+c;上面这个例子用了加法操作符和赋值操作符,对于基础类型,这些操作的含义非常显而易见且无歧义,但是对自定义类型来说,不见得......
  • MyBatis-Plus 可视化代码生成器来啦,让你的开发效率大大提速!!
    前言在基于Mybatis的开发模式中,很多开发者还会选择Mybatis-Plus来辅助功能开发,以此提高开发的效率。虽然Mybatis也有代码生成的工具,但Mybatis-Plus由于在Mybatis基础上做了一些调整,因此,常规的生成工具生成的代码还有一些不太符合预期。而且对于多数据库的支持不是很好。因此,我们......
  • value_plusargs和.get_arg_value
    https://www.cnblogs.com/jiang-ic/p/10579416.htmlprogramautomatictest;importuvm_pkg::*;classhello_worldextendsuvm_test;uvm_cmdline_processorclp;intarg_value;stringarg;`uvm_component_utils(hello_wor......
  • Mybatisplus3.5.1+shardingsphere-jdbc5.1.1分表
    注意使用雪花ID的话,查询ID时候必须使用long类型的ID,不要使用MP自带的默认的Serializable类型。否则会提示分片主键id数据类型和分片算法不匹配Inlineshardingalgorithmsexpressionxxxandshardingcolumnxxnotmatch错误。。。导入依赖<!--sharding-jdbc分库分表-->......
  • Mybatis Plus 源码分析
    ====================================MybatisPlus源码分析入口:com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration#afterPropertiesSetcom.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration#sqlSessionFactorycom.baomidou.mybatisplus.a......