問題タブ [shared-primary-key]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1864 参照

java - @PrimaryKeyJoinColumn が共有キーを選択しない

以前は @PrimaryKeyJoinColumn が機能していましたが、今はスプリング ブートを試していますが、何が足りないのかわかりません。すべてを正しく行ったように見えるので、非常に奇妙です。

人物クラス :

部門クラス :

サービスクラス:

それは私が DB で取得するものです: Person テーブル:

部門表:

望ましい出力: 両方の ID が同一である必要があります (個人 ID は 13 ではなく 18 である必要があります)。


更新: hibernate は常に ID なしで Person を挿入しようとするため、Person ID から自動インクリメントを削除し、既存の部門を持つ人を挿入しようとすると、次のようになります。


更新 2: @PrimaryKeyJoinColumn は ID 生成を部門クラスとして処理しないようです。そのため、ジェネレーターを使用する必要があります。サブクラスのIDを何もせずに結合した継承で同じアノテーションが機能するのだろうか。したがって、 ID 生成が Inheritance Joined で機能する理由を説明する答えを期待していますが、 OneToOne にはジェネレーターが必要です

0 投票する
1 に答える
36 参照

jpa - 別のテーブルの外部キーでもある自動生成された主キーを使用して、JPA を使用してデータを挿入するにはどうすればよいですか?

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

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

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

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

PersonalEntity.class

DemographicEntity.class

ダオクラス

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

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

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