我是Hibernate / Spring的新手,我遇到了自动生成外键和约束违规的问题。我有以下类属性:
@Id
@Column(name="MEDICATION_ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private long medicationId;
@Column(name="PATIENT_ID")
private long patientId;
private long dosageMg; // dose for patient in mgs
private long active; // active = 1, inactive = 0
private String medicationName; // name, oxy, etc.
private String medicationCode; // global identifier for this medications
private long activeDate;
private long inactiveDate;
当我启动服务器时,我注意到它在药物ID上生成以下代码外键
Hibernate: alter table medication add constraint FK_dbfuno3knrhmabosmfty7l3ta foreign key (all_medications_MEDICATION_ID) references medication
然后当它尝试从我的import.sql执行这个insert语句时,它会抛出一个约束违规错误。
delete from medication;
insert into medication (medication_id, patient_id, dosage_mg, active, medication_name, medication_code, active_date,inactive_date ) values (1000, 101, 10, 1, 'Oxy', 'oxy_10', 10000, 50000);
错误如下:
Caused by: org.hsqldb.HsqlException: integrity constraint violation: NOT NULL check constraint; SYS_CT_10127 table: MEDICATION column: ALL_MEDICATIONS_MEDICATION_ID
关于为什么生成此外键以及如何解决此约束违规的任何想法。
谢谢!