私は自分のDB表現&で冬眠していることを理解していますか?@OneToMany関係の外部キー制約
私のプロジェクト管理ツールを使用するとProject
が作成され、Phase
(s)で構成されます。
私は、リンクテーブルを作成したくないし、私のエンティティで、このようなように進めています:
マイProjectEntity
:
@OneToMany(mappedBy = "id")
private Set<PhaseEntity> phases = new HashSet<>(0);
と私のPhaseEntity
:
@NotNull
@ManyToOne(targetEntity = ProjectEntity.class)
private ProjectEntity project;
埋めた後、私のPhaseEntity
と私を介して保存するDAO
phaseDao.save(phaseEntity);
私は次のエラーを取得する:私はそれを参照してください
ERROR: insert or update on table "phase" violates foreign key constraint "fk8x1x98c4hq4ps0d30y6nxe90u" Detail: Key (phase_id)=(1820) is not present in table "project".
道、私のデータベースに固有のProjectEntity
を含む相をプッシュすると、1つのエントリを作成し、別のものを更新する必要があり、最初は私でなければなりませんphase
エントリであり、後者はproject
への更新で、Set
にフェーズを追加する必要があります。
テーブルをproject
テーブルに明示的に保存する必要がありますか? 私の推論の欠陥を見ますか?