【问题标题】:How to update entity with many to many relation using MockMvc?如何使用 MockMvc 更新具有多对多关系的实体?
【发布时间】:2017-02-23 19:37:08
【问题描述】:

我正在编写简单的 spring-boot 应用程序并想对其进行测试。我有User 类:

@Entity
@Table(name = "users")
@NoArgsConstructor
@AllArgsConstructor
public class User extends AbstractEntity {
    public enum Type {
        ADMIN, USER
    }

    @Getter
    @Setter
    private Type type;

    @Getter
    @Setter
    private String username;

    @Getter
    @Setter
    private String password;

    @ManyToMany(mappedBy = "managers")
    @Getter
    @Setter
    private Set<Label> label;
}

还有Label 类(假设它是一个组织,User 工作的地方):

@Entity
@Table(name = "labels")
@NoArgsConstructor
@AllArgsConstructor
public class Label extends AbstractEntity {
    @Getter
    @Setter
    private String title;

    @OneToOne
    @Getter
    @Setter
    private User creator;

    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "label_managers")
    @Getter
    @Setter
    private Set<User> managers;
}

这些实体由@RepositoryRestResources 管理。

我应该在MockMvc 的测试中写什么来添加UserLabel 之间的关系?

【问题讨论】:

    标签: java spring-boot spring-test mockmvc


    【解决方案1】:

    "通过使用 "Content-Type: text/uri-list" 而不是 JSON,可以使用 PUT 将资源“添加”到集合并传入 URI。您可以使用 DELETE 删除资源。”

    查看以下问题的答案:How to add elements in a many-to-many relationship via Spring's @RepositoryRestResource REST API?

    【讨论】:

      猜你喜欢
      • 2015-08-25
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      相关资源
      最近更新 更多