美文网首页
Spring Boot入门(第十五章):动态构造查询(Crite

Spring Boot入门(第十五章):动态构造查询(Crite

作者: 苍_之涛 | 来源:发表于2020-04-04 11:11 被阅读0次

这节我们讲解碰到复杂的查询条件时如何处理,使用CriteriaBuilder理论上可以满足我们任何场景的使用。

1、构造查询条件

注入EntityManager,我们的Repository底层是使用EntityManager来完成实体的增删改查的。

where里面的条件我们可以使用CriteriaBuilder API任意添加组合,逻辑相关的and,or,not,条件的equal,like,between等,还有集合相关的isMember,any等等,理论上所有的场景都考虑到了。

2、分页排序

3、总结

这节基本上都是代码,CriteriaBuilder是一种类型安全的动态查询,我们不需要担心里面会有什么sql注入漏洞什么的,可以放心使用。对于属性,需要注意并不是简单的一个字符串,是一个Path类型的参数,例如root.get("title")。上面介绍了怎么添加复杂的查询条件,怎么排序,怎么分页,怎么统计。

笔者一直强调CriteriaBuilder理论上可以解决所有的使用场景,因为他提供了丰富的API,让人看到例子基本上就知道怎么使用,而且CriteriaBuilder可以让我们能封装一个通用的查询方法出来。但是还是有很多复杂的场景,如果你不知道怎么使用CriteriaBuilder来实现,或者使用CriteriaBuilder效率比较低的话(特别是对象关联关系复杂的时候),我们还可以直接使用sql语句来查询,后面我们会讲到。

代码:

https://github.com/www15119258/springboot-study/tree/branch15

相关文章

网友评论

      本文标题:Spring Boot入门(第十五章):动态构造查询(Crite

      本文链接:https://www.haomeiwen.com/subject/icedphtx.html