Spring data jpa QueryWrapper和LambdaQueryWrapper

前言:

最近上班需要用到spring data jpa,JPA 对于特别简单的CRUD 和多表查询封装的十分好用,但是对于多条件组合查询 并不好友好,Specification Query API 又封装的很反人类,好想甩一个mybatis plus给老外看看,让他们也致敬下中国自己的开源项目,当然项目要干活,不能靠别人更新迭代,于是开始想自己怎么搞一个LambdaQueryWrapper出来。

实现思路:

既然JPA的复杂多条件查询是通过Specification 来实现的,我们就可以把Specification 包装一下,使用LambdaQueryWrapper的API设计,这样就可以实现MP QueryWrapper的80%功能。

因为要实现QueryWrapper和LambdaQueryWrapper所以要先抽一个父类出来AbstractWrapper,

QueryWrapper比较简单,Specification  支持根据po属性名进行过滤,LambdaQueryWrapper就有点麻烦,需要把Lambda 解析为po属性名,还好mp 有现成的源码我们只需要copy下即可(mp是apache协议的,可以copy),花了不到一天时间就搞定了。

代码在这里:jpa-query-wrapper: spring data jpa的LambdaQueryWrapper 实现,可以和写MP一样写JPA代码了

jar 已经上传到maven中央仓库 

  • 1
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 3

打赏作者

陕西小伙伴网络科技有限公司

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值