問題タブ [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 投票する
1 に答える
384 参照

hibernate - @joincolumn アノテーションのオプション フィールド

モデルクラスの1つの列に以下の構文を使用する必要があります

しかし、「 」でコンパイル エラーが発生しました。optionalを使用persistence-api-1.0.jarしています。これを解決する方法を教えてください。

0 投票する
2 に答える
914 参照

jpa - この例で @OneToMany JPA アノテーションはどのように機能しますか? テーブル列またはエンティティ クラス フィールドに関連していますか?

それぞれT_ACCOUNTT_ACCOUNT_BENEFICIARYという名前の 2 つの DB テーブルがあります。

これらのテーブルの構造は次のとおりです。

また、T_ACCOUNTテーブルはT_ACCOUNT_BENEFICIARYテーブルに 1 対多の関係でバインドされています。これをグラフィカルに表現します。

ここに画像の説明を入力

これは、 T_ACCOUNTテーブルをマップするAccountという名前の最初のクラスです。

これは、 T_ACCOUNT_BENEFICIARYテーブルをマップする受益者クラスです。

アカウントを見るとわかるように、 1 対 5の関係を実装する受益者フィールドがあります。

DB では、この関係が T_ACCOUNT_BENEFICIARY テーブルのACCOUNT_IDフィールドによって実装されていることを知っています (したがって、T_ACCOUNT_BENEFICIARYテーブルの複数の行がACCOUNT_IDフィールドの同じ値を持つことができ、これは T_ACCOUNTテーブルの単一の行がT_ACCOUNT_BENEFICIARYテーブルの複数の行に関連付けられています)。

前の sippet でわかるように、@JoinColumn(name="ACCOUNT_ID")注釈があります。

私の疑問は、私のT_ACCOUNT_BENEFICIARYテーブルにACCOUNT_ID列があるという事実によって生成されます。

しかし、この列は、このT_ACCOUNT_BENEFICIARYテーブルをマップする受益者にマップされていないようです。

@JoinColumn (name="ACCOUNT_ID")はリレーショナル レベルで動作しており、受益者エンティティ ( T_ACCOUNT_BENEFICIARY ) によってマップされたテーブルのACCOUNT_ID列で結合操作を実行していますか、何か不足していますか? この結合はどのように正確に実行されますか?

私の解釈が正しければ、エンティティ レベルで作業して、Accountエンティティ クラスの受益者フィールドを、 Beneficiaryエンティティ クラスに挿入され、 T_ACCOUNT_BENEFICIARYテーブルのACCOUNT_ID列をマッピングする新しいaccountIdフィールドに結合すると言うことはできますか?

TNX

0 投票する
2 に答える
202 参照

java - アドバイスが欲しい - SPRING JPA JoinColumns

SPRING と JPA の調査を開始しました。我慢してください。

2つのテーブルがあるとしましょう

**添付ファイル を柔軟に保つため(添付ファイルが必要な他の場所で同じテーブル/クラスを再利用できるようにするため)、REF_TYPEREF_IDの組み合わせを使用して、参照オブジェクトを見つけます。

これを行う最良の方法は何ですか?
-これを行う必要がありますか? DB/クラス設計へのより良いアプローチはありますか?

- @JoinColumns を使用する必要がありますか? (しかし、それがどのように機能するかはわかりません...) - または、添付ファイルをロードするロジックは、JPARepository @AutowiredインターフェイスにフォールバックするfindByRefTypeAndRefId(String refType, long refId)

関数を使用 して Service/DAO クラスに入る必要がありますか?

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

hibernate - 両方のテーブルで複合主キーを持つ @JoinColumns

これらのようないくつかのテーブルでレガシーデータベースをマップする必要があります

どちらにも複合主キーがあり、後者には最初のすべてのフィールドがあります。テーブルを変更できないので、そのままマッピングすることにこだわっています。

クラスは次のとおりです。

これは一方的な関係のためのものです

これは多くの側のためのものですが、

エンティティを取得できるため、このマッピングの種類は機能しますが、この単純なテストによって生成された sql を調べました。

これはSQLコードです:

ご覧のとおり、2 番目のエンティティの ID が複数回取得されます。これにより、私のマッピングは最適ではないと思われます。

ORM として Hibernate 4.3.10 を使用しています。

複数の列の取得を避けるために @JoinColumns を修正する方法はありますか?

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

java - JoinColumn (JPA/Hibernate) の使用時に列が生成されない

次のエンティティがあります。

IntegrationMapping と FlowElement は、主キー フィールド "DISCOVERY_ID"、"SCENARIONAME"、および "PROJECTNAME" (基本的には IntegrationProject の PK です。IFlow には IntegrationProject の PK と Name で構成される主キーがあります) を共有しているため、結合されています。

Hibernate が起動時にエンティティからテーブルを作成するようにしました。その際、列「MAPPINGNAME」が FLOWELEMENT テーブルにありません。

また、 @PrimaryKeyJoinColumn を使用しようとしましたが、その結果、列が作成されましたが、変数はそうではありませんが空です。

これを行う正しい方法 (@JoinColumn または @PrimaryKeyJoinColumn) と、列が作成/入力されないのはなぜですか?

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

openjpa - 列を 2 つの異なる値に設定しようとすると、OneToOne マッピングで InvalidStateException が発生します

私は以下のようにテーブルConfigManagementSettingsと外部からテーブルを持ってDeviceGroupいます:


以下のように単純な単体テストを行うと

以下のように InvalidStateException を取得しました

ただし、以下のように、別の 2 つのテーブル Subtask と SubtaskResult もあります。


また、以下のように行った単純な単体テスト

エンティティを永続化するために正常に機能します。

私が見逃しているものはありますか?これら 2 つのケースの動作が異なるのはなぜですか?

どんな助けでも大歓迎です。