使用Spring Boot CrudRepository过滤数据

使用Spring Boot CrudRepository过滤数据,第1张

使用Spring Boot CrudRepository过滤数据

一种解决方案,它可以通过Criteria API或QueryDSL使用“规范”模式,从而解决了您在上述注释中必须为每种参数组合创建查询方法的问题。

出于对以下方面的关注,下面概述了这两种方法

对于大型应用程序,查询方法的数量可能会增加,这是因为-这是第二点-
查询定义了一组固定的条件。为避免这两个缺点,如果您能提出一组可以动态组合以构建查询的原子谓词,这不是很酷吗?

https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-
and-querydsl/

我发现QueryDSL易于使用。您只需要定义一个接口方法,然后就可以将参数的任意组合传递给谓词

例如

public interface UserRepository extends PagingAndSortingRepository<User, Long>, QueryDslPredicateExecutor<User> {    public List<User> findAll(Predicate predicate);}

并查询:

repository.findAll(QUser.user.address.town.eq("Glasgow").and(QUser.user.gender.eq(Gender.M)));repository.findAll(QUser.user.address.town.eq("Edinburgh"));repository.findAll(QUser.user.foreName.eq("Jim"));

其中QUser是QueryDSL自动生成的类。

http://docs.spring.io/spring-
data/jpa/docs/current/api/index.html?org/springframework/data/jpa/repository/support/QueryDslRepositorySupport.html

http://www.querydsl.com/static/querydsl/2.1.0/reference/html/ch02s02.html

更新资料

从Spring Data模块的Gosling版本开始,现在支持从Web应用程序中的HTTP参数自动生成谓词。

https://spring.io/blog/2015/09/04/what-s-new-in-spring-data-release-
gosling#querydsl-web-support



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5177101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存