Spring Boot应用程序创建两个数据库行

时间:2018-11-14 08:18:20

标签: java hibernate spring-boot spring-data-jpa

我有一个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;

}
  

下面的行被创建到数据库中:

enter image description here

它不是连续发生的,它将在无法找到原因的任何时候发生。

1 个答案:

答案 0 :(得分:1)

您确定该方法没有被调用两次。尝试在其中一个字段中使用主键,以使重复的数据不会存储在数据库中。