問題タブ [joincolumn]

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 投票する
2 に答える
3218 参照

java - Hibernateでは@JoinColumnアノテーションは必須ですか?

Hibernate では、アソシエーションを結合するための列を指定するには、 @JoinColumn アノテーションを使用します。たとえば、次のようになります。

ほとんどの場合、列の名前はスネークケースのクラス名に_id. したがって、Hibernate から自動的に派生することを期待するのは合理的です (たとえば、Django の ORM で行われているように)。しかし、そのような動作は何らかの形で実装されていますか?

0 投票する
0 に答える
213 参照

java - JPA OneToMany JoinColumn 非主キー

私は2つのエンティティを持っています:

マッピングを修正するかどうかはわかりませんが、一般的な考え方は次のとおりです。「人」が同じグループに属している場合、同じ「もの」を持っている必要があります。

最初の質問: このマッピングはイデオロギー的にも技術的にも正しいですか?

もし、そうなら:

アノテーションを使用して動的に DB を作成します。そして、それは私が期待していない制約を生み出します。

ここに画像の説明を入力

このコードを実行すると、次のようになります。

私は受け取ります:

0 投票する
0 に答える
212 参照

hibernate - 結合テーブルに 0...1 の関係があるのはなぜですか?

この図でこの関係が 0...1 である理由を理解できる人はいますか? 「プロファイル」を削除しようとすると、Heidi Sql は FK 違反があると言います。論理的には問題ありませんが、これがどのように機能するかを理解したいです。「プロファイル」がなければ「ウェルビーイング」はあり得ませんが、なぜこの関係があるのでしょうか。したがって、私の意見では、これは 1 --- 0...* でなければなりません

図は intelliJ で作成され、このコードを使用します。

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "profile_chronicMedication", joinColumns = {@JoinColumn(name = "id")}, inverseJoinColumns = {@JoinColumn(name = "chronic_medication_id") }) プライベート SetchronicMedications = new HashSet<>();

ここに画像の説明を入力

編集: また、IntelliJ がこのタイプの関係を認識することも可能です。結合テーブルとの関係のために何を変更する必要がありますか? これは本当に不可能ですか、少なくとも結合テーブルも表示されますか?

クラスの役割:

@ManyToOne(オプション = false)

プライベート プロフィール プロフィール。

クラスプロフィール:

@OneToMany(カスケード = CascadeType.ALL、mappedBy = "プロファイル")

プライベート セット ロール = new HashSet<>();

ここに画像の説明を入力

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

hibernate - @ManyToOne 再帰関係に対して Hibernate LEFTJOIN が生成されない

私は再帰的な関連付けを持つテーブルを持っています:

コンテナーは、親 (Column container_id) に関連付けることができます。コンテナはコンテナを子として持つことができます。

問題:

生成されたリクエストは次のとおりです。

私は左外部結合を期待しています:

親を持たないコンテナー (ルート ボックス CON0000007) は、Hibernate によって左結合が生成されないため、取得されません。

ID | ORIGINAL_ID| コード | タイプ | CONTAINER_ID (親)

1 | 2 | CON000000002 | パッケージ | 12

2 | 4 | CON000000004 | パッケージ | 10

4 | 6 | CON000000006 | パッケージ | 11

5 | 8 | CON000000008 | パッケージ | 10

7 | 10 | CON0000002 | ボックス | 15

8 | 11 | CON0000003 | ボックス | 15

9 | 12 | CON0000004 | ボックス | 15

12 | 15 | CON0000007 | ルートボックス | ヌル

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

entity-framework-6 - EF6.1.3 列を結合する (休止状態のように)

Entity Framework 6.1.3 を使用しており、N テーブルから複数の結合列を持つ 1 つのテーブルへのリレーションを追加したいと考えています。次の例は、私の問題を理解するのに役立ちます。

次の列を含むテーブル P (プロトコル テーブル):

次の列を含むテーブル A (モジュール A テーブル):

次の列を含むテーブル B (モジュール B テーブル):

この行のすべてのプロトコルを取得するために、モジュール A にナビゲーション プロパティが必要です。

(モジュールB、モジュールCも同様…)

Java/Hibernate では、複数の ElementJoinColumns (referenceColumnsNames などを使用) を使用できることを知っています。

EF6.1 でこれを処理するにはどうすればよいですか? ありがとう、マーカス。