如何更新双向元素JPA实体和正确的响应

时间:2019-02-18 21:35:33

标签: java json hibernate rest spring-rest

我的问题与REST API设计有关。

让我们有两个具有一对多关系的对象:

@Entity
public class Company {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, unique = true)
    private String name;

    @OneToMany(mappedBy = "company", cascade = CascadeType.ALL)
    private Set<Product> products;
}

@Entity
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false, unique = true)
    private String name;

    @ManyToOne
    @JoinColumn(name = "company_id", nullable = false)
    private Company company;
}

问题出现了,当向PATCH方法发送JSON请求时,如何更新相关记录(针对相关公司对象)以及正确的响应是什么。

下面,我将介绍可能的组合: (其中“ productIds”字段-转换为具有指定ID的产品的相应对象)

  1. JSON请求:

    {      “ productIds”:[1、2、3] }

响应:

1.1。选项1

{
    "productIds": [1, 2, 3]
}

1.2。选项2

{    
    "products": [
        {
            "id": 1,
            "name": "Comp1"
        },
        {
            "id": 2,
            "name": "Comp2"
        },
        {
            "id": 3,
            "name": "Comp3"
        }
    ]
}
  1. JSON请求:

    {
        “产品”:[         {             “ id”:1         },         {             “ id”:2         },         {             “ id”:3,         }     ] }

响应:

2.1。选项1

{    
    "products": [
        {
            "id": 1,
        },
        {
            "id": 2,
        },
        {
            "id": 3,
        }
    ]
}

2.2。选项2

{    
    "products": [
        {
            "id": 1,
            "name": "Comp1"
        },
        {
            "id": 2,
            "name": "Comp2"
        },
        {
            "id": 3,
            "name": "Comp3"
        }
    ]
}
  1. JSON请求:

    {
        “产品”:[         {             “ id”:1             “名称”:“ Comp1”         },         {             “ id”:2             “名称”:“ Comp2”         },         {             “ id”:3,             “名称”:“ Comp3”         }     ] }

响应:

3.1。选项1

{    
    "products": [
        {
            "id": 1,
            "name": "Comp1"
        },
        {
            "id": 2,
            "name": "Comp2"
        },
        {
            "id": 3,
            "name": "Comp3"
        }
    ]
}

我的问题是json结构最常用于更新链接和答案的方法。

也就是说,您可以共享最佳实践,如何执行依赖关系更新以及项目中的相应答案。

0 个答案:

没有答案