当前位置: 首页 > 知识库问答 >
问题:

在Spring Data REST中发布@OneTomany子资源关联

臧彭亮
2023-03-14
@Entity
public class Post {

    @Id
    @GeneratedValue
    private long id;
    private String author;
    private String content;
    private String title;

    @OneToMany
    private List<Comment> comments;

    // Standard getters and setters...
}
@Entity
public class Comment {

    @Id
    @GeneratedValue
    private long id;
    private String author;
    private String content;

    @ManyToOne
    private Post post;

    // Standard getters and setters...
}

他们的Spring Data REST JPA存储库是CrudRepository的基本实现:

postrepository.java:

public interface PostRepository extends CrudRepository<Post, Long> { }

commentrepository.java:

public interface CommentRepository extends CrudRepository<Comment, Long> { }
@Configuration
@EnableJpaRepositories
@Import(RepositoryRestMvcConfiguration.class)
@EnableAutoConfiguration
public class Application {

    public static void main(final String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

一切似乎都正常工作。当我运行应用程序时,一切看起来都正常工作。我可以将一个新的POST对象发布到http://localhost:8080/posts,如下所示:

正文:{“Author”:“TestAuthor”,“Title”:“Test”,“Content”:“Hello World”}

http://localhost:8080/posts/1中的结果:

{
    "author": "testAuthor",
    "content": "hello world",
    "title": "test",
    "_links": {
        "self": {
            "href": "http://localhost:8080/posts/1"
        },
        "comments": {
            "href": "http://localhost:8080/posts/1/comments"
        }
    }
}

创建注释资源并将其与此帖子相关联的正确方法是什么?如果可能的话,我希望避免直接发布到http://localhost:8080/comments

共有1个答案

魏高邈
2023-03-14

您必须首先发布评论,在发布评论的同时,您可以创建一个关联发布实体。

它应该如下所示:

http://{server:port}/comment METHOD:POST

{"author":"abc","content":"PQROHSFHFSHOFSHOSF", "post":"http://{server:port}/post/1"}

它会工作得很好的。

 类似资料:
  • 问题内容: 目前,我有一个使用Spring Data REST的Spring Boot应用程序。我有一个域实体Post,它与另一个域实体有关系。这些类的结构如下: Post.java: Comment.java: 他们的Spring Data REST JPA存储库是以下各项的基本实现CrudRepository: PostRepository.java: CommentRepository.ja

  • 有时我会看到这样的警告: 如果我重写或不重写布局资源会发生什么?

  • 本章呈现 JAX-RS 核心概念-资源和子资源的概述。 JAX-RS 2.0 的 JavaDoc 文档 可以在这里 找到。 JAX-RS 2.0 规范草案可以在这里 找到。

  • 我需要在REST API中实现子资源 URL将像: https://localhost:8080/v1/student/{id}? include=地址,资格,登录 因此,地址、资格和登录是三个子资源,如果我们添加这是查询参数,则将包括这三个子资源。子资源可以是对其他服务的数据库调用或rest调用 这个问题发生在实现端,我已经将@RequestParam列表包括在内 所以现在我在服务课上就是这样写

  • OneTomany:Trplist:TargetEntity:TravelRoutePoints MappedBy:route Cascade:[“Persist”,“Remove”]JoinColumn:Name:id引用的ColumnName:tr_id