我有一个使用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帖子的所有评论。
我想知道这对于两个实体是否都是单一控制器的正确方法,或者我是否应该为每个Post
和Comments
实体编写单个控制器?
答案 0 :(得分:0)
在一个类似的项目中,我的老板告诉我只对这两个相关的实体使用一个Repository
接口。我将仅使用Post
与实体相关的Repository
,而不是Comments
,然后使用映射间接填充Comments
实体。
关于控制器,我认为没关系,但我可能错了。
答案 1 :(得分:0)
使用两个存储库是正确的方法,因为您的数据库具有存储在不同表中的两个实体。也许将来某个时候你需要搜索评论,第二个存储库将有助于此。
关于REST,您的网址看起来不错。因此,如果您不需要新的端点,那么单个控制器对我来说听起来不错。
如果我的端点看起来像这样,我会添加第二个控制器:
http://localhost:8080/comments