問題タブ [jointable]

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 に答える
460 参照

jpa - JPA結合がjUnitテストにカスケードしない

結合テーブルで定義した 2 つのテーブル間に多対多の関係があります。

会社のアーキテクチャの制限により、結合テーブルには UUID 列が必要です。

associateItems結合列に行を挿入するDAO メソッドが呼び出されました。すべてをテストするために、jUnit テストで次のことを行います。

このテストは、最後の 2 行で失敗します。

私の DAO では、多くのことを試しました。classAItemandをお互いのリストに追加してclassBItemマージしてみました。ただし、結合テーブル オブジェクトに UUID がないため、これによりエラーが発生します。そして、結合テーブルオブジェクトを作成してそれを永続化しようとしました。しかし、リストのサイズが 0 であると見なされるため、テストの最後の 2 行は失敗します。

私は2番目の解決策に固執しています(失敗はエラーよりも優れています)。

結合テーブル項目がデータベースに挿入されていることはわかっています。また、結合テーブル アイテムを手動で入力し、関連付けが見つかったときにリストが入力されるようにしました。したがって、このテストでは、結合テーブル アイテムを作成してから、関連するリストを関連付けることに問題があります。

カスケード、フェッチタイプ、フラッシュをいじってみました。しかし、テストに合格する方法を見つけることができないようです。

これを修正するために何をする必要があるか知っている人はいますか?

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

c# - 結合テーブルに追加の列がある多対多

こんにちは私はこの関係をどのように設定しますか?私はすでに多対多の関係を持っていますが、新しい機能を使用して、結合テーブルに列を追加する必要があります。

簡単にするために、Userクラス、Productクラス、UserProductクラスがあり、今日は次のようになっています。

Product.hbm.xml

User.hbm.xml

カスケードはどのように見えるべきですか?新しい機能のために、新しいクラスUserProductを作成しました。

そして、UserProduct.hbm.xmlを作成しました

以前にuser.Products.Add(product);を使用したことがある場合。今はどのようになりますか?ユーザーと製品をどのようにマッピングしますか?既存のレコードを更新するにはどうすればよいですか?ユーザーを削除するとき、製品ではなく製品への関連付けを削除したいと思います。

新しい質問: 登録ユーザーが製品を収集できるページがあります。このページでは、ユーザーがそこにある製品の一部を非表示にできるようにしたいと思います。グリッドビューにデータが入力され、チェックボックス付きのテンプレートフィールドがあります。「HideProduct」列があるUserProductを更新するにはどうすればよいですか。私はボタンにこのコードを持っています。

助けてくれてありがとう!

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

ruby-on-rails - has_many コレクションをループして、別のモデルで HABTM をセットアップする方法

多くの LineItems を持つ Orders があります。LineItems has_many リード。ユーザーがリードを購入するまで、リードはユーザーに関連付けられません。関連付けは、HABTM 関係と結合テーブル LeadsUsers によって設定されます。

ユーザーがリードを購入したら、関連付けをセットアップする必要があります。適切な HABTM コードが設定された LeadsUsers モデルがあります。私の注文モデルには次のものがあります。

このメソッドは失敗します: 定義されていないローカル変数またはメソッド `line_item'。これは、私が参照している line_item がわからないことを意味します...何かアイデアはありますか? 最終的には、User.leads.all を参照できるようにしたいと考えています。

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

sql - Railsの結合テーブルを使用したSQL結合

したがって、これらのテーブルを結合する最善の方法が何であるかはわかりません。JOIN を使用したいのは、FROM で 3 つのテーブルすべてを取得するよりも高速であると考えているためです。だから、テーブルが3つある場合...

結合テーブルを使用してこのデータを結合するにはどうすればよいですか?

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

java - 追加の @JOINCOLUMN で @JOINTABLE を使用する JPA

JPA を使用して、既存の ERP システムからデータを抽出しています。特定のデータに対して (既存の) ジョイント可能なものを使用しています。問題は、結合テーブルではなく、ソース テーブル自体にある列も照合する必要があることです。

私の現在の結合テーブルの条件は次のとおりです。

これは機能しますが、条件 T1.F1 = T3.F6 をどこにどのように追加すればよいですか?

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

hibernate - JPA /Hibernate@ManyToManyが結合テーブルにインデックスを作成していません

次の2つのエンティティを考慮してください。

結合テーブルはPROFILE_TAG正常に作成されますが、インデックスは作成されません。hibernateが結合テーブルに複合インデックスを作成することを期待していました。何が得られますか?

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

mysql - ルックアップテーブルを含む複数のテーブルを結合し、行にデータを返す方法

いくつかの簡単なコンピューターゲームの結果を表示し、コード内で結果を1行ずつ簡単に反復できるようにしようとしています。各ゲームに関連するすべてのデータが各レコードに含まれるようにして、すべてを1行で出力できるようにします。例:

  • チームA(スコア45)対チームB(スコア55)、ゲーム時間:5
  • チームC(スコア60)対チームD(スコア65)、ゲーム時間:4.3

したがって、ゲームの場合、互いにプレイする2つのチームがあり、ゲームの終了時にそれぞれがスコアを取得します。基本的に、ゲームごとにgames_teamsテーブルに2つの行があります。

これが私のスキーマです:

スキーマ写真

これが私のテーブルデータです:

テーブルデータ写真

結果を簡単に繰り返してページに出力できるように、私が達成しようとしている出力は次のとおりです。

希望の出力写真

私はいくつかの恐ろしいSQLと次のような多くのサブクエリでそれを達成することができました:

その方法の問題は、速度が遅く、スケーリングしないことです。また、games_teamsテーブルから他のゲーム統計を引き出して、さらに多くのサブクエリを作成する必要があります。

私が試した他の方法は次のとおりです。

望ましくない出力写真

私は次のSQLでそれを達成しました:

各ゲームに関連するデータが2つの異なるレコードにあるため、この方法でコードを進めるのは難しくなります。行の最初の部分を作成してから、次のループの反復に進み、次の部分を印刷する必要があります。次に、次のゲームのために最初からやり直します。次のように、すべての情報を1行に表示しようとしています。

チームA(スコア45)対チームB(スコア55)、ゲーム時間:5分

だから、すべてが1つのレコードにある方が簡単だと思います。これをうまく達成する方法はありますか?games_teamsテーブルにさらに列が必要な場合もスケーリングしますか?

再作成する必要がある場合は、データベースコードへのペーストビンリンクを次に示します。

どんな助けでも大歓迎です、ありがとう!

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

java - 主キーの代わりにインポートされたキーを使用する @JoinTable

JPA/Hibernate 3.6/DB2 を使用。

次の例外があります: 原因: org.hibernate.AnnotationException: SecondaryTable JoinColumn は非主キーを参照できません

のせいで:

requestBatchID は主キーではなく、RequestBatch テーブルからインポートされたキーです (実際には主キーです)。JoinTable で主キーを使用する必要があるのはなぜですか? つまり、これが多対 1 の関連付けであると定義しただけではありませんか? なぜ主キーでなければならないのですか?

指定するには: これは、テーブルがどのように見えるかです。

必要な結果は、Hibernate によって構築される次の SQL クエリです。

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

java - 結合テーブルを JPA のパラメーターとして使用する

データベースからの次のエンティティ クラスでは、コレクション productsCollection2 をパラメーターとして使用し、productsCollection3 を取得して、テーブルから選択するクエリを作成する方法を説明します。productCollection2 を使用し、IN 句を使用してリストを渡して選択することはできますか。

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

java - Java Entity Class:結合された列を持つエンティティでアイテムを追加/編集する方法は?

これと API に関するいくつかのトピックを読みましたが、正しい方向に進んでいるように感じます。しかし、私はまだそれを機能させるのに十分な理解ができていないに違いありません。

次の 2 つのテーブルがあります: TODO と JOBTYPE

TODO テーブルには TDTDKEY (PK) と TDJTKEY(FK?) があります JOBTYPE テーブルには JTJTKEY (PK) と JTCODE があります

ここに画像の説明を入力

ご覧のとおり、Todo.tdjtkey は jobtype.jtjtkey に対応しており、私の目標はキーではなく jtcode を取得することです。

Entity クラスは部分的に次のようになります。

Todo.java

JobType.java

そのため、名前付きクエリを実行すると、Todo.findAllTDTDKEY (つまり TD00000001) と関連する TDJTKEY CODE (つまり PICS PGM) が返されます。

ようやく選択が機能するようになったので、追加/編集する方法を確認しようとしています。

たとえば、TD00000001 を使用していて、PROG を SUPPORT に変更したいとします。

試してみると、通常の方法でsv.setJobType(txtJobType.getText());は機能せず、次のようになります。

それは私には多かれ少なかれ理解できますが、Todo テーブルを更新する方法がわかりません。どういうわけか、JobType.java で SUPPORT を見つけて、その JTJTKEY を取得し、Todo.java に新しい TDJTKEY として配置する必要がありますか?

ヘルプ/ヒントをいただければ幸いです。

編集:次のコードは答えに従って機能します!ありがとう!

そして、私のエンティティクラスは今このように見えます

Todo.java

JobType.java

もちろん、削除と追加のための適切なメソッドを追加する必要がありました。