我的应用程序中有一种情况,我想保存新记录。我正在使用 Crudrepository save() 方法。众所周知,如果记录不存在,save() 将执行保存操作,如果找到则更新操作。
但我想限制更新操作。就像如果记录已经可用一样,既不更新也不保存该记录。
下面说的是我们的实体类,它具有组合键。并且基于复合键我们想要执行此操作。
实体类
@Entity
@IdClass(PrescriptionKey.class)
public class Prescription implements Serializable{
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="prescription_id")
private int prescriptionId;
@Id
@Column(name="dose_id")
private int doseId;
@Id
@Column(name="med_id")
private int medId;
//Setter Getters
}
复合键类
public class PrescriptionKey implements Serializable {
private int doseId;
private int medId;
//Setter Getter
}
假设每次保存操作的数据都包含新数据以及已保存的旧数据。现在我们只想对新数据执行保存。
最佳答案
有时可能是找不到您尝试更新的处方 ID。 jpa 提供的自动生成的处方 ID 小于您尝试更新的处方 ID。因此,JPA 使用自动生成的处方 ID 创建一条新记录,而不是您尝试更新的处方 ID。
关于java - 使用数据 JPA 和 CrudRepository 只保存而不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53680574/