問題タブ [composite-key]

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

java - Hibernate が複合キーで無効な結果を返す

私は最も奇妙な結果を得ています。複合キーを持つクラスがあります。次のクエリを実行すると:

from LOVEJB l order by l.canonicalId desc

私の結果は、私が要求した「canonicalId」列によって順序付けられていません。代わりに、canonical id の結果は次のようになります。

823 823 822 823 、、、

これを解読するにはどうすればよいか、誰かが私にいくつかの指針を与えることができますか? 私はすでにhashcodesequalsを台無しにし、新しいクラスなどを試しましたが、役に立ちませんでした。

0 投票する
4 に答える
16895 参照

java - JPA 複合キー + シーケンス

プレーンな JPA または JPA + Hibernate 拡張で、複合キーの要素がシーケンスである複合キーを宣言することは可能ですか?

これは私の複合クラスです:

applicationentitynativeIdおよびの値はすでに指定していますnativeKey。以下のようなエンティティを構築したい:

em.persist(i1)を呼び出すと、canonicalIdが生成され、統合が挿入されます。

これは可能ですか?もしそうなら、簡単な方法は何ですか?(私はアプリケーション提供のキーやネイティブ SQL を使用したくありません)。

0 投票する
5 に答える
6484 参照

mysql - MySQL の質問 - 一意のキーが正しく機能していませんか、それとも誤解していますか?

4 つの異なるパーツのいずれかを含めることができる関係を作成しようとしていますが、同じパーツのコレクションは一意として処理する必要があります。

例: 割り当てには、割り当てられた会社が必要です。オプションで、割り当てられた場所、ワークグループ、およびプログラムが含まれる場合があります。割り当てには、場所のないワークグループを含めることはできません。

A、B、C という会社があるとします。位置 X、Y、Z; ワークグループ I、J、K およびプログラム 1、2、3。

したがって、有効な関係には、A - X - I - 1 A - Z - 2 B - Y C C - 3 B - Z - K が含まれます。

ただし、無効な関係には、A - K (場所のないワークグループ) Y - K - 1 (会社なし) が含まれます。

だから、私のテーブルを作成するために、私は作成しました

これは、ワークグループがある場合に場所を割り当てる割り当ての必要性以外のすべての関係を処理すると思います (これは、プログラムまたはトリガーを使用して喜んで実行できると思います)。

ただし、このスキーマをテストすると、次のように入力できます...

...文句なし。nullが含まれているため、(1、null、null、null)はそれ自体と等しくないと推測しています。この場合、この関係を処理する方法はありますか?

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

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

nhibernate - 複合 ID を持つ Nhibernate の予期しないプロキシ オブジェクト

複合 ID を使用するデータ構造があります (これを単一に変更したくありません) 結合が空の場合、プロパティを null にマップする代わりに、空の結合にマップする多対 1 結合を除いて、すべて正常に読み込まれます。プロキシ オブジェクト。私は醜い回避策を書きました(以下を参照)。これに対する解決策はありますか?

プライベート ノード _Parent;

}

マッピングファイルで始まる

およびアクセス元

0 投票する
6 に答える
12838 参照

sql - SQL 複合キー クエリ

これを再度参照するにはSQL products/productsales

主キーが 1 列ではなく 2 列で構成されている場合、どのようにすればよいでしょうか?

したがって、products には PK として 2 つの列があり、productsales には FK として 2 つの列があります。

1列のキーを使用したソリューションは次のとおりです。

0 投票する
14 に答える
595468 参照

mysql - MySQL で複数の列に一意の制約を指定するにはどうすればよいですか?

私はテーブルを持っています:

ここで、ユーザー、メール、アドレスの列を(一緒に) 一意にしたいと考えています。

MySqlでこれを行うにはどうすればよいですか?

もちろん、例は単なる...例です。したがって、セマンティクスについて心配する必要はありません。

0 投票する
5 に答える
9882 参照

ruby-on-rails - 結合テーブルで、Railsに複合キーがない場合の最善の回避策は何ですか?

対応するカテゴリテーブルと投稿テーブルを参照する列を持つ結合テーブル(上記のとおり)があります。カテゴリ_posts結合テーブルの複合キーcategory_id、post_idに一意性制約を適用したかったのです。しかし、Railsはこれをサポートしていません(私は信じています)。

category_idとpost_idの同じ組み合わせを持つデータ内の重複行の可能性を回避するために、Railsに複合キーがない場合の最善の回避策は何ですか?

ここでの私の仮定は次のとおりです。

  1. デフォルトの自動番号列(id:integer)は、この状況でデータを保護するために何もしません。
  2. ActiveScaffoldは解決策を提供するかもしれませんが、特によりエレガントな答えがある場合は、この単一の機能のためだけにそれをプロジェクトに含めるのがやり過ぎかどうかはわかりません。
0 投票する
1 に答える
2322 参照

hibernate - 複合キーを使用しない Hibernate の ManyToMany

私はレガシーデータベースを扱っています。そして、 pojos & hibernate & HSQLDBを使用して単体テストを書いています。そして、次のエラーが表示されます。

私がPostTagエンティティ (そしてもちろんそれらのテーブルpoststags) を持っているとしましょう。Postまた、 と の間で多対多を定義する別のテーブルがTag呼び出されpost_tagsます。

列などのpost_tags関係に関する追加情報が含まれているためです。これを処理するために呼び出される別のエンティティを作成しました。activedeletedPostTag

ここで私の問題を説明するために、疑似クラスがあります:

エラーを生成するステートメントを見ると、Hibernate が を使用して複合キーを作成しようとしているように見えPRIMARY KEY (post_id, tag_id)ますpost_id identity

誰でも私の問題を解決するのを手伝ってもらえますか?

アップデート:

私は従来のデータベースを扱っているため、これは問題を示すための単なる例です。しかし、例に従って実際のステートメントを翻訳しようとします(PS:それはそうALTER TABLEではありませんCREATE TABLE):

0 投票する
4 に答える
2624 参照

nhibernate - nHibernate - ストアド プロシージャと複合キー

nHibernate を使用して、ストアド プロシージャの出力をプロジェクト内のオブジェクトにマップしようとしています。

オブジェクトは次のように宣言されます。

マッピングは次のようになります。

ストアド プロシージャの呼び出しは正しく、SalesRoleId 266 に対して次のような結果が返されます (例として)。

複合キーがなくても (CMIId のみを使用)、CMIId を共有する 2 つの結果 (上記のように) がある場合を除いて、正常に機能します... 2 番目は最初の結果によって上書きされます。

複合キーを使用する必要があり、CMIId/FeatureId は論理的な組み合わせです。

これを今実行すると、例外が発生します。

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

asp.net - 外部キーにも使用されるマップテーブルに複合キーを使用する必要がありますか?

ASP.NETとEntityFrameworkを使用してWebサイトを作成しています。私は現在、多対多の関係のマップテーブルを持っています...たとえば、ユーザーとサッカーチームを考えてみましょう。それで:

ユーザー
チーム
UserTeams

パート1:マップテーブルの主キーに複合キーを使用するのがベストプラクティスですか?言い換えると:

UserTeamsテーブル
PKUserIdPK TeamId PreferenceId
_ _

パート2:注意点は私も別のテーブルを持っているということです。これを「UserTeamPredictions」と呼びましょう。これは、特定のチームの各年のユーザーの予測を保存します。そのテーブルには、マップテーブルを指す外部キーがあります。したがって、次のようになります。

UserTeamPredictionsテーブル
PKUserTeamPredictionIdFK UserId
FK TeamId Prediction PredictionYear
_

これはEntityFrameworkで正常に機能しているようですが、Telerikのように使用しているサードパーティのコントロールでリレーションシップを参照するときに問題が発生しました。理想的なデータ設定ではないかもしれませんが、データバインディングなどを使用してコードで操作しやすいように、テーブルの構造/関係を変更する必要がありますか?

変更は、整数の主キーをUserTeamsマップテーブルに追加し、UserTeamPredictionsテーブルが現在のように複合キーを介してではなく、キーを直接参照できるようにすることです。

UserTeamsテーブル
PKUserTeamIdFK UserId
FK TeamId PreferenceId
_ _

UserTeamPredictionsテーブル
PKUserTeamPredictionIdFK UserTeamId Prediction PredictionYear
_

どう思いますか!?