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中央仓库 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值