我有一个带有 MySQL
数据库的 spring boot
应用程序。下面的方法是创建具有相同字段的药物的两行。
@Override
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public MedicationGroup save(MedicationGroup medicationGroup) {
return medicationRepository.save(medicationGroup);
}
Medication Group Entity:
@Getter
@Setter
@Table(name = "medication_group")
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MedicationGroup extends AbstractEntity implements Persistable {
private static final long serialVersionUID = 2948809916398284974L;
private Short type;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "patient_id", nullable = false, updatable = false, insertable = false)
private Patient patient;
@Column(name = "patient_id")
private Long patientId;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "medicationGroup", cascade = CascadeType.ALL)
private List<Prescription> prescriptions;
}
Below rows are created into database :
它不会持续发生,它随时都会发生,无法找到原因。
最佳答案
您确定该方法没有被调用两次吗?尝试在其中一个字段中使用主键,这样数据库中就不会存储重复的数据。
关于java - Spring boot应用程序创建两个数据库行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53295688/