我正在使用 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
。
我进行了相当多的搜索,但一直无法找到答案。
非常感谢任何帮助! 干杯!
我也遇到过同样的问题, 就我而言,我用 @Document 注释了 User 类,但我缺少添加值:
@Document("User")
value属性的javadoc:
代表实体的文档的集合应该是 存储在。如果没有配置,默认的集合名称将为 源自类型名称。
所以默认情况下如果没有配置,似乎使用小驼峰命名的类名。