Spring Rest Respository Collection 名称区分大小写

问题描述 投票:0回答:1

我正在使用 Spring Boot 和 MongoDB,并尝试使用 Spring Rest 存储库通过 REST 公开它们。

我有一个名为

user
的 Mongo 集合和名为
User
的 Java 域模型类。我的休息存储库看起来像这样:

@RepositoryRestResource(  collectionResourceRel = "users", path = "users")
public interface UserRepository extends MongoRepository<User, String> {

    public User findByEmail(@Param("email") String email);

}

有了这个,我就获得了通过 REST 自动公开资源的广告优势。获取、放置、发布所有爵士乐。

我发现,当我将 Mongo 集合重命名为

User
时,它在
/users
端点上找不到记录。几乎就好像 Spring REST 存储库假设集合名称将采用小写(是的,我确实在这里遇到了文档 - https://docs.spring.io/spring-data/rest/docs/current-SNAPSHOT /参考/html/

Spring Data REST 公开了一个集合资源,该资源以导出存储库正在处理的域类的非大写复数版本命名。资源的名称和路径都可以使用存储库接口上的 @RepositoryRestResource 进行自定义。

我所追求的是一种配置方法,以便我可以使用像

User
这样的集合名称而不是
user

我进行了相当多的搜索,但一直无法找到答案。

非常感谢任何帮助! 干杯!

mongodb spring-boot spring-data-rest
1个回答
0
投票

我也遇到过同样的问题, 就我而言,我用 @Document 注释了 User 类,但我缺少添加值:

@Document("User")

value属性的javadoc:

代表实体的文档的集合应该是 存储在。如果没有配置,默认的集合名称将为 源自类型名称。

所以默认情况下如果没有配置,似乎使用小驼峰命名的类名。

© www.soinside.com 2019 - 2024. All rights reserved.