問題タブ [linktable]

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

c# - リンク テーブルから現在の主キーを取得し、Checkstate チェックリスト ボックスを設定します。

products というテーブルの値を含む CheckedListbox があります。アイデアは、顧客に関連付けられている製品をチェックすることです。リンクテーブルに正しく保存されるようになりましたが、再度ロードすると、チェックされた項目が CheckedListbox に正しくロードされません。

したがって、そのリンク テーブルから、1 つの列からすべての行を取得したいと考えています。すべてのテーブルは既にアプリケーションにロードされているため、SQL を使用したくありません。

linq を使用してみましたが、成功しませんでした。ID はここでは空です。

次に、それらの Id の取得に成功した場合は、それらの主キーのインデックスを取得して、正しい製品を に設定できるようにしますchecked。このようにするのにうんざりしていますが、グローバルデータテーブルに主キーを設定しているため、プログラムの他の部分でエラーが発生します。Datagridviews はそれが好きではありません。

主キーを指定せずに最後の部分をやりたいのですが、linqでそれを行う方法が見つかりませんでした。

私はそれが2つの質問で構成されていることを知っていますが、おそらくこれは1つのlinqステートメントで実行できるので、それらを組み合わせたほうがよいでしょう。

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

database - リンクテーブルには常に独自の識別子が必要ですか?

学校のプロジェクト用のデータベースを作成していますが、ある時点で行き詰っています。リンク テーブルには常に独自の識別子が必要なのか、それとも他の 2 つのテーブルの PK で十分なのか疑問に思っています。

これを尋ねる理由は、このリンク テーブルに適した PK が見つからないためです。では、これをスキップできますか?

前もって感謝します

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

java - Spring + Hibernate: 2 つのリンク テーブルを効率的にチェーンし、結果のデータを 1 つのエンティティに含めるにはどうすればよいですか? (ユーザー役割権限)

短縮版

ユーザーテーブルがロールテーブルにリンクされ、ロールテーブルが権限にリンクされている基本的なセットアップがあります。これらは両方とも多対多の関係です。ロールは動的なエンティティであり、アプリケーションにとって重要ではありません (視覚的な側面のみ)。ユーザーをフェッチするときに、すべての権利の名前のリストを含むユーザー テーブルのデータを返したいと考えています。

明確にするために、これが私がソリューションに求めていることです:

ソリューションの概要

ユーザーオブジェクトで権限を取得して返すことができましたが、元のクエリが呼び出された後に hibernate が余分なクエリを呼び出すため、効率的ではありません。

詳細版

最初に、エンティティをリンクする方法と、コードがどのように見えるかについて、いくつかの情報を提供しましょう。私の(簡略化された)データベーステーブル構造は次のようになります。

データベース図

ユーザー.java

Role.java

右.java

テーブルを結合するために Java 仕様 API を使用していることを知っておくことは重要です。

これにより、正しいクエリが作成されます。

今まですべてが私にはよさそうに見えました。しかし、すべてのロールの名前を取得しようとすると、2 つ以上のクエリ (ページと元のクエリのカウント) が実行されています。

追加のクエリは次のようになります。

これにより、通話が非常に非効率になります。この場合は 1 人のユーザーですが、複数のユーザーの場合は加算されます。

余分なクエリの実行を追加せずに、1 つのクエリですべての権限の名前をユーザー エンティティに配置する方法はありますか?

これまでに試したこと:

  • @SecondaryTableUser エンティティの Right テーブルから列を直接定義するために使用します。最初に Role を User にリンクしてから、Role テーブルのフィールドを使用して Right テーブルをリンクすることができませんでした。したがって、最終的には、 User オブジェクトの上に @SecondaryTable アノテーションを付け、その下に Right オブジェクトの列を定義する必要があります。

  • User エンティティで使用@Formulaして、ネイティブ呼び出しをクエリに挿入します。注釈がすべてを権利のリストにマップする方法を理解していなかったため、これも機能しませんでした。

ここには他のオプションがあるかもしれません。または、上記のものを実装する際に何かひどく間違ったことをしました。しかし、今のところ、問題の解決策を見つけるためにどちらの方法をとるべきかわかりません。誰かが私に言うことができれば、それは素晴らしいことです.

前もってありがとう、
ロビン

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

c# - 多対多のリンク テーブル エンティティ フレームワークの挿入

私は次の関係を持っています: テーブルの関係

そして、次のクラス (関連するプロパティのみ):

  1. Affair: (AffairID, Title, ... , AffairsGroups)
  2. グループ: (GroupID, Name, ... , AffairsGroups)
  3. AffairsGroups(AffairID、GroupID、Affair、Groups)

データベースに新しい Affair レコードを追加したいのですが、これは、AffairGroups テーブルにも追加されます (既知の GroupID を使用)。次の方法で試しました。

しかし、次の例外が発生します。

これらは私のコンテキストクラスです: 1.

2.

私は何を間違っていますか?ありがとう