問題タブ [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.
hibernate - @joincolumn アノテーションのオプション フィールド
モデルクラスの1つの列に以下の構文を使用する必要があります
しかし、「 」でコンパイル エラーが発生しました。optional
を使用persistence-api-1.0.jar
しています。これを解決する方法を教えてください。
jpa - この例で @OneToMany JPA アノテーションはどのように機能しますか? テーブル列またはエンティティ クラス フィールドに関連していますか?
それぞれT_ACCOUNTとT_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
java - アドバイスが欲しい - SPRING JPA JoinColumns
SPRING と JPA の調査を開始しました。我慢してください。
2つのテーブルがあるとしましょう
**添付ファイル を柔軟に保つため(添付ファイルが必要な他の場所で同じテーブル/クラスを再利用できるようにするため)、REF_TYPEとREF_IDの組み合わせを使用して、参照オブジェクトを見つけます。
これを行う最良の方法は何ですか?
-これを行う必要がありますか? DB/クラス設計へのより良いアプローチはありますか?
- @JoinColumns を使用する必要がありますか? (しかし、それがどのように機能するかはわかりません...) - または、添付ファイルをロードするロジックは、JPARepository @AutowiredインターフェイスにフォールバックするfindByRefTypeAndRefId(String refType, long refId)
関数を使用
して Service/DAO クラスに入る必要がありますか?
hibernate - 両方のテーブルで複合主キーを持つ @JoinColumns
これらのようないくつかのテーブルでレガシーデータベースをマップする必要があります
どちらにも複合主キーがあり、後者には最初のすべてのフィールドがあります。テーブルを変更できないので、そのままマッピングすることにこだわっています。
クラスは次のとおりです。
これは一方的な関係のためのものです
これは多くの側のためのものですが、
エンティティを取得できるため、このマッピングの種類は機能しますが、この単純なテストによって生成された sql を調べました。
これはSQLコードです:
ご覧のとおり、2 番目のエンティティの ID が複数回取得されます。これにより、私のマッピングは最適ではないと思われます。
ORM として Hibernate 4.3.10 を使用しています。
複数の列の取得を避けるために @JoinColumns を修正する方法はありますか?
java - JoinColumn (JPA/Hibernate) の使用時に列が生成されない
次のエンティティがあります。
IntegrationMapping と FlowElement は、主キー フィールド "DISCOVERY_ID"、"SCENARIONAME"、および "PROJECTNAME" (基本的には IntegrationProject の PK です。IFlow には IntegrationProject の PK と Name で構成される主キーがあります) を共有しているため、結合されています。
Hibernate が起動時にエンティティからテーブルを作成するようにしました。その際、列「MAPPINGNAME」が FLOWELEMENT テーブルにありません。
また、 @PrimaryKeyJoinColumn を使用しようとしましたが、その結果、列が作成されましたが、変数はそうではありませんが空です。
これを行う正しい方法 (@JoinColumn または @PrimaryKeyJoinColumn) と、列が作成/入力されないのはなぜですか?
openjpa - 列を 2 つの異なる値に設定しようとすると、OneToOne マッピングで InvalidStateException が発生します
私は以下のようにテーブルConfigManagementSettings
と外部からテーブルを持ってDeviceGroup
います:
以下のように単純な単体テストを行うと
以下のように InvalidStateException を取得しました
ただし、以下のように、別の 2 つのテーブル Subtask と SubtaskResult もあります。
また、以下のように行った単純な単体テスト
エンティティを永続化するために正常に機能します。
私が見逃しているものはありますか?これら 2 つのケースの動作が異なるのはなぜですか?
どんな助けでも大歓迎です。