当存在相同域类型的两个Repositoy接口时,Spring-Data-Rest公开RepositoryRestResource随机失败

时间:2018-08-21 08:07:43

标签: spring spring-data-rest

你好堆栈溢出

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

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覆盖了所有Repository,因为对于同一个类,我有两个内部map.put覆盖了我想要的行为,具体取决于哪个bean首先出现。

那么这是bug还是spring不支持带有spring-data-rest的多个Repository-Interface,或者我是否配置错误?

1 个答案:

答案 0 :(得分:0)

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

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