我有一个spring boot
数据库和MySQL
应用程序。下面的方法是用相同的字段创建药物的两行。
@Override
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public MedicationGroup save(MedicationGroup medicationGroup) {
return medicationRepository.save(medicationGroup);
}
药物治疗组实体:
@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;
}
下面的行被创建到数据库中:
它不是连续发生的,它将在无法找到原因的任何时候发生。
答案 0 :(得分:1)
您确定该方法没有被调用两次。尝试在其中一个字段中使用主键,以使重复的数据不会存储在数据库中。