gpt4 book ai didi

java - 在 Spring boot 应用程序中更新一行

转载 作者:行者123 更新时间:2023-11-30 07:13:16 25 4
gpt4 key购买 nike

我在 Postgress DB 中有一个表。员工。

 @Entity
public class Employee implements Serializable {

public Employee(){

}

public Employee(long id){
this.empID = id;
}

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
long empID;

@Version
public Long version;

String name;
String city;
int age;


public long getEmpID() {
return empID;
}

public void setEmpID(long empID) {
this.empID = empID;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCity() {
return city;
}

public void setCity(String city) {
this.city = city;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public Long getVersion() {
return version;
}

public void setVersion(Long version) {
this.version = version;
}

@OneToOne(orphanRemoval=true)
@Cascade(CascadeType.ALL)
BankAccount bankAccount;

public BankAccount getBankAccount() {
return bankAccount;
}

public void setBankAccount(BankAccount bankAccount) {
this.bankAccount = bankAccount;
}


@OneToMany(fetch = FetchType.EAGER)
@Cascade(CascadeType.ALL)
Collection<Project> projects;

public Collection<Project> getProjects() {
return projects;
}
public void setProjects(Collection<Project> projects) {
this.projects = projects;
}

}

这是我的员工服务更新功能。

 public Employee updateEmployee(Employee employee){
employee.setName("Updated name");
employeeRepository.save(employee);

return employee;
}

请求数据:JSON请求方法:PUT

{
"empID":"1",
"name":"New",
"city":"Agra"
}

当请求提供 empID 时,上述服务功能工作正常,它正在更新相同的记录。

但是当 @Version 注释包含在 Employee Domain 中时,问题就开始了,它在每个请求上创建新行,请指出出了什么问题?

最佳答案

我不确定如何插入具有相同 empID 的多行,但无论如何。

如果您在 Domain 类中发送带有 @Version 字段的 PUT 请求。当 @Version 为 null 时,它将被视为新条目并被插入。

{
"empID":"1",
"name":"New",
"city":"Agra"
}

尝试在 PUT 请求中发送版本值。

{
"empID":"1",
"name":"New",
"city":"Agra",
"version":"0"
}

关于java - 在 Spring boot 应用程序中更新一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38822036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com