Spring,hal浏览器和实体关系

时间:2018-05-03 18:37:53

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

我有两个实体,帖子:

@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添加到用户实体中的列表吗?

当我想添加到该列表时,我有这样的感觉: enter image description here 我应该在这里粘贴什么?链接到该帖子?

提前致谢

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您需要更新author实体的Post字段。您可以通过在帖子端点上发送PATCH请求来执行此操作,如下所示:

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

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