問題タブ [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.
java - @PrimaryKeyJoinColumn が共有キーを選択しない
以前は @PrimaryKeyJoinColumn が機能していましたが、今はスプリング ブートを試していますが、何が足りないのかわかりません。すべてを正しく行ったように見えるので、非常に奇妙です。
人物クラス :
部門クラス :
サービスクラス:
それは私が DB で取得するものです: Person テーブル:
部門表:
望ましい出力: 両方の ID が同一である必要があります (個人 ID は 13 ではなく 18 である必要があります)。
更新: hibernate は常に ID なしで Person を挿入しようとするため、Person ID から自動インクリメントを削除し、既存の部門を持つ人を挿入しようとすると、次のようになります。
更新 2: @PrimaryKeyJoinColumn は ID 生成を部門クラスとして処理しないようです。そのため、ジェネレーターを使用する必要があります。サブクラスのIDを何もせずに結合した継承で同じアノテーションが機能するのだろうか。したがって、 ID 生成が Inheritance Joined で機能する理由を説明する答えを期待していますが、 OneToOne にはジェネレーターが必要です
jpa - 別のテーブルの外部キーでもある自動生成された主キーを使用して、JPA を使用してデータを挿入するにはどうすればよいですか?
私は2つのテーブルを持っています。構造は
個人テーブル 自動 ID 番号、整数、主キー | 名前、Varchar | 年齢、整数 |
人口統計テーブル 自動 ID 番号、int、外部キー | アドレス、varchar |
以下のエンティティクラスを作成しました。
PersonalEntity.class
DemographicEntity.class
ダオクラス
Microsoft SQL で jpa を使用しています。最初に個人テーブルにデータを挿入したいのですが、データベースは主キーを自動生成します。その主キーは、人口統計テーブルの外部キーです。私が電話したとき、persist()
私はエラーが発生しています
INSERT ステートメントが FOREIGN KEY 制約と競合しました。ステートメントを実行できませんでした。制約(null)
ここで何が間違っていますか?個人テーブルにデータを挿入し、自動生成されたキーを使用して、人口統計テーブルにデータを挿入したい