問題タブ [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 に答える
12200 参照

java - joinColumn による EntityManager クエリ

私はLoginエンティティとエンティティを持っていCustomerます。Login.usernamecustomer テーブルの外部キーです。したがって、Java CustomerPOJOの次の行

私の質問はこれです: を使用してcustomerテーブルをクエリする簡単な方法はありますusernameか? または、最初に で取得loginしてusernameから で取得customerする必要がありloginますか?

JPA基準クエリは次のとおりです。そして、はい、条件クエリを使用したいと思います。

Path<String> path = root.<String>get("username")はそれを言って例外をスローしていますusername ... is not present.

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

doctrine-orm - Zend2 Doctrine2 One-To-Many一方向結合テーブル、削除カスケードの問題

次の点で問題があります...電話番号の表があります。ユーザーと会社で同じテーブルを使いたい。ユーザーは複数の電話番号と会社を持つこともできます。したがって、2 つの異なる結合テーブルとの 1 対多の一方向の関係が必要です。1 つは電話番号をユーザーにリンクするもので、もう 1 つは電話番号を企業にリンクするものです。これは、doctrine2 マニュアルの第 5.9 章に続く解決策です: (クリック)

私の users エンティティは次のコードを保持しています:

ユーザーを参照すると、会社に同じ電話番号エンティティクラスを使用できないため、双方向のものを作成できないため、単方向の1対多を使用します。今ではすべて問題なく動作していますが、電話番号を削除すると次のエラーが表示されます:「DELETE FROM phone_number WHERE id = ?」の実行中に例外が発生しました。パラメータ {"1":1}:

SQLSTATE[23000]: 整合性制約違反: 1451 親行を削除または更新できません: 外部キー制約が失敗しました ( database/user_phone_number_linker, CONSTRAINT user_phone_number_linker_ibfk_11FOREIGN KEY ( phone_number_id) REFERENCES phone_number( id))

データベースで ON DELETE CASCADE 値を手動で設定すると問題なく動作しますが、これは doctrine2 を使用するという考えではなく、phpMyAdmin パネルに行かなくてもコード内で解決できるはずです。何らかの方法で、電話番号から結合テーブルへのカスケードを削除時に開始する必要がありますが、phone_number エンティティから結合テーブルへの参照を戻すことはありません。

賢い人がこれを解決するのを手伝ってくれることを願っています。

編集

その間、私は Doctrine2 についてさらに多くのことを学び、以前の質問を見直して、そもそもこれが複数の phoneNumbers を 1 つのテーブルに格納する正しい方法ではないことに気付きました。ユーザーの電話番号と会社の電話番号を同じテーブルに格納できるようにするには、テーブルの継承と識別子列を使用する必要があります。列には、ユーザー/会社の識別子が含まれている必要があります。

この列により、doctrine ORM はその phoneNumber が実際にユーザーまたは会社の電話番号であるかどうかを「認識」します。doctrine 2 spec の単一テーブル継承マッピング原則に従って、2 つの異なるエンティティ定義を作成する必要があります。

1 つのクラスUserPhoneNumberは、とのmany-to-one関係とUser呼ばれる他のクラスとCompanyPhoneNumberone-to-many関係を持ちCompanyます。結合列は必ずしも必要ではありません。user_idまたはcompany_id列は電話番号テーブルにある場合があります。UserクラスではCompany関連付けが省略され、クラスCompanyではUser関連付けが省略されます (データベースはこれらの列に null 値を許可する必要があります)。

結合テーブルを使用する場合は、Doctrine2 仕様の結合テーブルを使用した 1 対多の一方向の説明に従っています。

続きを読む

それ以外の場合は、この精巧なDoctrine2 の詳細なWeb サイトで、関連付けとカスケードの問題について詳しく読むこともできます。

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

hibernate - JPA @ManyToMany リレーション、@JoinTable および @JoinColumn @OrderBy

TABLE_A

  • ID
  • 選別

TABLE_B

  • ID

ManyToMany 関連付けられたこれらのテーブルを使用して、REF テーブルがあります。

TABLE_REF

  • 援助
  • 入札

B.getAs() を使用してデータを取得しています

OrderBy TABLE_A.SORT フィールドとして取得したい。このため、OrderBy を追加しようとしましたが、A の近くにある B の関係で ORDER フィールドにアクセスできません。

というわけで、SORTフィールドもREFテーブルにJoinできれば、Bのリレーションマップで@OrderBy(clause="ORDER")パラメータが使えると思います。

しかし、何時間も解決策を見つけることができませんでした。

マッピングに使用するコードは次のとおりです。

表_A:

テーブル_B:

私がまさに欲しいのは、 TABLE_B.getAllPages() が TABLE_A.DISPLAY_ORDER で注文された

ダミーの休止状態でのマッピング関係に関するよくできた情報源は、私にとって適切です。

0 投票する
3 に答える
4633 参照

hibernate - JPA/Hibernate の条件付き/複合 JoinColumn

私のクラスの 1 つである Location には、次のようなものがあります。

マジシャンには変数があります

ここで、getter アノテーションを変更して、active が true であるマジシャンのみを取得したいと考えています。

どうすればこれを達成できますか?

ご清聴ありがとうございました。

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

list - プレイフレームワーク!2 つのモデル間の関係

Web アプリケーションをプログラムする必要があります。ユーザーは、質問のリストを含むアンケートを作成できる必要があります (質問も作成するため)。

Questionnaire.java と Question.java を作成し、リストをアンケートにリンクするすべての方法をロックしました: OneToMany/ManyToOne の方法、マッピングあり、JoinColumn の有無にかかわらず、Embeddedable 、EmbeddedId .. ..

それらが機能することはわかっていますが、アンケートを作成しようとするたびに機能し、質問を追加しようとするたびに、ポインターまたは SQL クエリ エラーが発生します。

役に立たない方法をたくさん試したので、ここにコードを記載しませんでした。

誰かがうまくいく方法を知っていて、その方法を簡単に説明してくれるなら、それはとてもいいことです。

回答ありがとうございます。

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

awk - 特定の列で2つのファイルを結合するAWK

2 つのファイルをその列の 1 つで結合しようとしていますが、出力は 2 番目のファイルの列と最初のファイルの列の一部である必要があります。

たとえば、私の最初のファイルは次のとおりです。

subscriberid unsubscribetime unsubscribeip listid statid unsubscribed

私の2番目のファイルは次のとおりです。

listid statid listname ownername owneremail createdatesubscriberid バウンスタイプ バウンス時間 バウンスルール

最初のファイルでは 5 番目、2 番目のファイルでは 2 番目の "statid" 列でそれらを結合する必要があります。その後、最初のファイルから 2 列目、3 列目、6 列目を追加します。出力は次のようになります。

listid statid listname ownername owneremail createdatesubscriberidbouncetypebouncetimebounceruleunsubscribetimeunsubscribeipunsubscribed

構文を理解するのに苦労していますが、次のコマンドを使用していました。

「print $0」と、a[$5]=$2 に設定された 2 番目の列フォーム ファイルの 1 つであるため、file2 列が得られると思いましたが、file2 列のみを出力します。

どこで間違いを犯していますか?file1 の 2 列目、3 列目、6 列目を file2 に結合するにはどうすればよいですか?

ヘルプ/説明は大歓迎です!

この例の両方のファイルには 1 つの行しかありません

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

java - 選択クエリで JoinColumn フィールドを使用する

以下のフィールドを持つメインエンティティクラスがあり、患者エンティティクラスを参照するフィールドfinidがあります。:-

患者のエンティティクラス:-

ここで、指定されたfinidに一致する患者レルを検索する必要があります。誰でもそのためのアプローチを共有できますか?

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

java - 複数のスキーマの JPA エンティティを正しく生成する方法はありますか?

いくつかのスキーマに分割された大きなデータベースがあります。Eclipseウィザード(JPAツール)から、あるスキーマのJPAエンティティを生成しますが、他のスキーマの他のテーブルに依存するテーブルがいくつかあり、問題はそれらのエンティティが次のように作成されることです:

そして、私はそれがこのように生成されなければならないと思います:

2番目の方法は最初の方法よりも正しいですか? 2番目の方法でJPAエンティティを自動的に生成する方法はありますか??

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

java - 非主キー列の OneToOne 関係

別のエンティティと OneToOne 関係を持つエンティティをクエリすると、問題が発生します。これはシナリオです:

データベース テーブル:

テストデータ:

エンティティ:

呼び出し:

呼び出し後、休止状態のログには次のように表示されます。

ご覧のとおり、結合は users.email と people.id ( user1_.email=person2_.id ) を比較するため間違っているため、対応するPersonなしでUserを返します。

どうすれば修正できますか?

どうもありがとう !!