Spring JPA collectionResourceRel默认值为?

时间:2016-09-29 15:15:06

标签: jpa spring-boot

使用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的新手。请让我知道这件事。

感谢。

1 个答案:

答案 0 :(得分:1)

Spring Data Rest documentation

  

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

     

...

     

默认情况下,导出器将使用。来公开您的CrudRepository   域类的名称。 Spring Data REST也应用Evo Inflector来复数这个词。

Evo Inflector

  

Evo Inflector实现了基于的英语复数算法   Damian Conway的论文An Algorithmic Approach to English Pluralization

该文件有许多细节,但这似乎提供了一个很好的概述,以形成名词的复数版本的算法:

null

Online tool to pluralize a word

我发现这个网站,我相信使用相同的实现。您可以查看单词的复数形式:http://morphadorner.northwestern.edu/pluralizer/example