使用JPA时,如果跳过@RepositoryRestResource会自动将api添加为“s”。
public interface DeviceRepository extends JpaRepository<Device, Integer> {
}
以上代码自动生成/ api / devices api。
public interface RadioDataRepository extends JpaRepository<RadioData, Integer> {
}
但我不能使用/ api / radiodata或/ api / radiodatas。对此有规定吗?
我知道使用如下的注释。
@RepositoryRestResource(collectionResourceRel = "rdata", path = "rdata")
public interface RadioDataRepository extends JpaRepository<RadioData, Integer> {
}
但我是Spring和JPA的新手。请让我知道这件事。
感谢。
答案 0 :(得分:1)
Spring Data REST公开了一个以。命名的集合资源 导出的域类的非大写,复数版本 存储库正在处理。资源的名称和路径都可以 使用存储库上的@RepositoryRestResource进行自定义 接口
...
默认情况下,导出器将使用。来公开您的CrudRepository 域类的名称。 Spring Data REST也应用Evo Inflector来复数这个词。
Evo Inflector实现了基于的英语复数算法 Damian Conway的论文An Algorithmic Approach to English Pluralization。
该文件有许多细节,但这似乎提供了一个很好的概述,以形成名词的复数版本的算法:
null
我发现这个网站,我相信使用相同的实现。您可以查看单词的复数形式:http://morphadorner.northwestern.edu/pluralizer/example