【发布时间】:2020-07-19 23:40:14
【问题描述】:
我正在通过 spring boot 开发一个简单的应用程序。我需要限制用户只能更新名称,而不是所有与用户数据相关的文件,但不幸的是,我的代码有一个问题,如果有人以 Json 格式发送数据并更改年龄或任何其他字段将被更新,但正如我所说,我需要用户能够更改唯一的名称,而不是任何其他字段。我不得不提到我正在使用 JPA 存储库和 spring 数据
我的控制器
@RestController
@RequestMapping("/student")
public class StudentController {
@Autowired
StudentRepository repository;
// method i user to only update the name field
@PatchMapping("/pattt/{id}")
public ResponseEntity partialUpdateName(
@RequestBody Student partialUpdate,
@PathVariable("id") String id
){
Student.save(partialUpdate, id);
return ResponseEntity.ok(repository.save(partialUpdate));
};
}
JPA 存储库
@Repository
public interface StudentRepository extends JpaRepository<Student, Integer> {}
学生班
@Entity
@Table(name = "student")
public class Student {
@Id
@GeneratedValue
private int id;
private String name;
private int age;
private String emailAddress;
public Student() { }
public Student(int id, String name) {
this.id = id;
this.name = name;
}
public Student(int id, String name, int age, String emailAddress) {
this.id = id;
this.name = name;
this.age = age;
this.emailAddress = emailAddress;
}
public static void save(Student partialUpdate, String id) {
partialUpdate.setName(id);
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getEmailAddress() {
return emailAddress;
}
}
【问题讨论】:
标签: java spring spring-boot jpa patch