0

私は2つのテーブルを持っています。構造は

個人テーブル 自動 ID 番号、整数、主キー | 名前、Varchar | 年齢、整数 |

人口統計テーブル 自動 ID 番号、int、外部キー | アドレス、varchar |

以下のエンティティクラスを作成しました。

PersonalEntity.class

@Entity
@Table("Personal")
public class PersonalEntity {

@Id
@Column(name="Auto Id Number")   
private int id;

@Column(name="Name")
private String name;

@Column(name="Age")
private int age;

@OneToOne(cascade=CascadeType.ALL)
@PrimaryKeyJoinColumn
private DemographicEntity de;

DemographicEntity.class

@Id
@Column(name="Auto Id Number")   
private int id;

@Column(name="Address") 
private String address;

ダオクラス

@Transactional
public PersonalEntity add(PersonalEntity pe, DemographicEntity de){
     pe.setDe(de);
     entitymanager.persist(pe);
     return pe;
}

Microsoft SQL で jpa を使用しています。最初に個人テーブルにデータを挿入したいのですが、データベースは主キーを自動生成します。その主キーは、人口統計テーブルの外部キーです。私が電話したとき、persist()私はエラーが発生しています

INSERT ステートメントが FOREIGN KEY 制約と競合しました。ステートメントを実行できませんでした。制約(null)

ここで何が間違っていますか?個人テーブルにデータを挿入し、自動生成されたキーを使用して、人口統計テーブルにデータを挿入したい

4

1 に答える 1