【问题标题】:Spring, hal browser and entities relationshipSpring、hal浏览器与实体关系
【发布时间】:2018-05-03 18:37:53
【问题描述】:

我有两个实体,帖子:

@Data
@Entity
public class Post {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String date;
private String content;
private String imageUrl;

@ManyToOne
private User author;
@ManyToOne
private User owner;

和用户:

@Data
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String firstName;
private String lastName;

private String email;
private String address;

private String avatarUrl;
private String about;
private Boolean active;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "author")
private List<Post> authorPosts;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "owner")
private List<Post> ownerPosts;

我正在使用 HAL 浏览器添加帖子和用户,但我遇到了关系问题。

假设我添加用户和链接到该用户是https://localhost:8080/users/1,我添加帖子https://localhost:8080/posts/1

我应该更新https://localhost:8080/posts/1 的字段作者并添加 user/1 的链接吗?我不确定,但在 hal 浏览器中是不可能的。 还是应该将https://localhost:8080/posts/1 添加到用户实体的列表中?

当我想添加到该列表时,我有这样的东西: 我应该在这里粘贴什么?链接到那个帖子?

提前致谢

【问题讨论】:

    标签: spring-data-rest hateoas spring-hateoas


    【解决方案1】:

    如果我正确理解您的问题,您想更新Post 实体的author 字段。您可以通过在 post 端点上发送 PATCH 请求来做到这一点,如下所示:

    PATCH /post/1
    {
      "author": "http://localhost:8080/user/1"
    }
    

    我没有经常使用 HAL 浏览器,但我希望这个请求应该以同样的方式工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 2014-05-05
      • 1970-01-01
      • 2016-12-03
      • 2017-04-28
      • 2011-05-11
      • 1970-01-01
      相关资源
      最近更新 更多