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

为什么Hibernate/Spring会在ID字段上生成外键。导致外键旋转,spring,hibernate,spring-mvc,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

我是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;
当我启动服务器时,我注意到它在medicationID上生成以下代码外键

Hibernate: alter table medication add constraint FK_dbfuno3knrhmabosmfty7l3ta foreign key (all_medications_MEDICATION_ID) references medication
然后,当它试图从my 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
关于为什么生成这个外键以及我如何绕过这个约束冲突的任何想法


谢谢

您发布的代码是
medicing.java
entity?这是完整的代码吗?你能给我们看一下整个实体吗。。我怀疑缺少了一些东西,比如@ChaitanyaNot它不是整个类定义,而是类中的所有属性。唯一遗漏的代码是属性的getter/setter。问题是针对表的连接。