gpt4 book ai didi

jpa - 将 Spring Data 查询构建器与 Spring Data JPA 规范相结合?

转载 作者:行者123 更新时间:2023-12-03 22:18:59 25 4
gpt4 key购买 nike

Spring Data 允许您在存储库接口(interface)中声明诸如 findByLastname() 之类的方法,它会自动为您从方法名称生成查询。

是否有可能以某种方式让这些自动生成的查询也接受规范,以便在数据返回之前对其进行额外的限制?

这样,我可以例如调用 findByLastname("Ted", isGovernmentWorker()),它会查找所有姓氏为 Ted 且满足 isGovernmentWorker() 规范的用户。

我需要这个,因为我想要 Spring Data 提供的自动查询创建,并且因为我仍然需要能够在运行时应用任意规范。

最佳答案

没有这样的功能。规范只能应用于JpaSpecificationExecutor操作。

更新
数据访问操作由代理生成。因此,如果我们想在单个 SELECT 调用中对操作(如 findByName + Criteria 中的操作)进行分组,代理必须理解并支持这种用法;它没有。

对于您的情况,使用 Specification API 时的预期用途如下所示:

findAll(Specifications.where(hasLastName("Ted")).and(isGovernmentWorker())

关于jpa - 将 Spring Data 查询构建器与 Spring Data JPA 规范相结合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28442655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com