gpt4 book ai didi

当同一域类型存在两个存储库接口(interface)时,Spring-Data-Rest 公开 RepositoryRestResource 随机失败

转载 作者:行者123 更新时间:2023-12-05 07:31:04 24 4
gpt4 key购买 nike

你好堆栈溢出

我正在使用 spring-data-jpa 和 spring-data-rest 为自己创建一个演示应用程序。我有两个存储库接口(interface):

interface PersonRepository : PagingAndSortingRepository<Person, Long>

@RepositoryRestResource(path = "people", collectionResourceRel = "people", exported = true)
interface PeopleRepository : PagingAndSortingRepository<Person, Long>

我将 repositoryDe​​tectionStrategy 更改为 RepositoryDe​​tectionStrategies.ANNOTATED。

我为 personRepository 创建了一个自制的 peopleRepository RestController 我希望它由 spring 创建并由 hateos 在 localhost:8080/公开

问题

  • 只是随机公开了 peopleRepository(根本不工作)。

调试后我可以肯定地说 RepositoryRestMvcConfiguration 的 Bean Repositories 是问题的原因。

org.springframework.data.repository.support.Repositories 的方法 populateRepositoryFactoryInformation 覆盖所有存储库,因为我有两个用于同一个类,内部 map.put 覆盖我想要的行为,具体取决于哪个 bean 先出现。

那么这是一个错误还是 spring 不支持带有 spring-data-rest 的多个 Repository-Interfaces 还是我配置错误?

最佳答案

可悲的是,SpringData似乎不能很好地处理这种情况(我使用的是spring-boot 1.5.8,当我发现和你一样的问题...我尝试升级我的 spring 版本以查看是否已修复,但我开始遇到其他编译/部署问题。所以我放弃了这个想法...)

您可以在这些链接中获取更多信息:

关于当同一域类型存在两个存储库接口(interface)时,Spring-Data-Rest 公开 RepositoryRestResource 随机失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51944297/

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