Spring REST控制器中的@OneToMany关系

时间:2016-02-07 09:42:25

标签: spring rest spring-mvc spring-data-rest

我有一个使用Spring Data Rest的Spring Boot应用程序。我有一个域实体Post,它与域实体Comment具有@OneToMany关系。对于这两个实体,我创建了一个Repository接口。

到目前为止,我有一个名为PostController的控制器可以处理这两个问题。通过http://localhost:8080/posts/1/我收到了ID为1的帖子。此外,通过http://localhost:8080/posts/1/comments,我得到了Id 1帖子的所有评论。

我想知道这对于两个实体是否都是单一控制器的正确方法,或者我是否应该为每个PostComments实体编写单个控制器?

2 个答案:

答案 0 :(得分:0)

在一个类似的项目中,我的老板告诉我只对这两个相关的实体使用一个Repository接口。我将仅使用Post与实体相关的Repository,而不是Comments,然后使用映射间接填充Comments实体。

关于控制器,我认为没关系,但我可能错了。

答案 1 :(得分:0)

使用两个存储库是正确的方法,因为您的数据库具有存储在不同表中的两个实体。也许将来某个时候你需要搜索评论,第二个存储库将有助于此。

关于REST,您的网址看起来不错。因此,如果您不需要新的端点,那么单个控制器对我来说听起来不错。

如果我的端点看起来像这样,我会添加第二个控制器:

http://localhost:8080/comments