当同一域类型存在两个存储库接口时,公开 RepositoryRestResource 的 Spring-Data-Res



Hello stack overflow

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

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

我将 repositoryDetectionStrategy 更改为 RepositoryDetectionStrategies.ANNOTATED。

我为 personRepository 创建了一个自制的 RestController for the peopleRepository 我希望它由 spring 创建并公开在本地主机:8080/by hateos

问题

  • 只是随机地暴露了 peopleRepository(根本不工作(。

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

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

那么这是一个错误还是 spring 不支持几个带有 spring-data-rest 的存储库接口,或者我配置了错误的设置?

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

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

  • 一个实体 两个存储库
  • 数据休息问题/改进票证

相关内容

  • 没有找到相关文章

最新更新