标签:QueryWrapper LambdaQueryWrapper jpa Spring Specification JPA data
前言:
最近上班需要用到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中央仓库
标签:QueryWrapper,LambdaQueryWrapper,jpa,Spring,Specification,JPA,data 来源: https://blog.csdn.net/shuaizai88/article/details/120820675
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。