为什么Hibernate / Spring会在ID字段上生成外键。导致外键违规

时间:2014-11-05 14:44:07

标签: spring hibernate spring-mvc

我是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

关于为什么生成此外键以及如何解决此约束违规的任何想法。

谢谢!

0 个答案:

没有答案