弹簧数据休息时的PUT操作

时间:2018-03-25 08:47:37

标签: java rest spring-data spring-data-jpa spring-data-rest

我有模特人与帐户和学校模型的关系:

@Entity
public class Person {
     @GeneratedValue
     @Id
     private Long id;

     @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
     @RestResource(exported = false)
     private Account account;

     @ManyToOne(fetch = FetchType.EAGER)
     private School school;
}

这个想法 - 该帐户应该只能使用用户模型进行编辑。对于我所要求的学校,我发送的内容是这样的:

"school": "http://localhost:8080/schools/2"

它可以正常处理POST请求。我这样发送json:

{
    "account": {
        "username": "test",
        "email": "testEmail"
    },
    "school": "http://localhost:8080/schools/2"
}

在该请求之后创建了新人和帐户,对于school_id - 我在数据库中需要值。

它可以正常处理PATCH请求。我这样发送json:

{
    "account": {
        "username": "new test",
        "email": "new testEmail"
    },
    "school": "http://localhost:8080/schools/1"
}

在该请求之后,需要在数据库中更新字段。

PUT请求中的问题。我这样发送json:

{
    "account": {
        "username": "put test",
        "email": "put testEmail"
    },
    "school": "http://localhost:8080/schools/2"
}

此请求的结果:

    帐户表中的
  • 我有新行,旧帐户行未更新 没有删除;

  • 学校未更新。

我希望PUT操作具有与PATCH请求相同的行为。我需要通过PUT请求更新所需的字段。我需要帮助。我应该改变什么?

0 个答案:

没有答案