問題タブ [composite-primary-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.
java - JPA/Hibernate: 複合主キー、@IdClass または @EmbeddedId 実装のどちらが優れているか、またその理由は?
JPA/Hibernate 複合主キー、@IdClass
または@EmbeddedId
実装には何が優れていますか?その理由は?
これは意図的に素朴な質問です。(何らかの理由で)使用することにし@EmbeddedId
ましたが、間違った選択をしたように感じます。列のプロパティを含む embeddedId の逆参照は冗長であり、コーディング時にエラーが発生しやすくなります。
他に賛成または反対の理由はありますか?JPA(仕様)による推奨事項はありますか?
java - *ネストされた*複合主キーで@IdClassを使用するJPA 1.0の制限?
次の例を考えます (部門 - プロジェクト):
部門には次のプロパティがあります (複合主キー)。
ここで PK クラス:
プロジェクトと部門の間の関係は多対 1 です。つまり、部門は多くのプロジェクトを持つことができます。Project クラス自体は、Department の複合キーを参照する複合キーを使用しています。重要な注意: @EmbeddedId ではなく @IdClass を使用した実装のみです。
次に、(問題のある) JPA 1.0 @IdClass 実装は次のようになります (冗長な deptNum および deptCtry プロパティ): -> 部門内の一意の名前です。
ProjectId は次のとおりです。
これに関する問題は、Hibernate も EclipseLink も、Project の 2 つの冗長なプロパティ deptNum と deptCtry を DeptId の dept プロパティ (またはその中のプロパティ) にマップする方法を認識していないことです。-> MappingException など
私の質問は:
これは JPA 1.0 の制限であり、@IdClass 実装を持つ他の複合キーを参照する複合キーを持つテーブルは一般に機能しません。JPA 実装はこれらのフィールドをマップする方法を単に知らないためですか?
回避策として、これらのクラスに @EmbeddedId を使用するか、JPA 2.0 構文を使用して @XToX 関連付けに @Id のアノテーションを付ける必要があります。これに関する私の見解が正しいことを確認したいだけです。
ありがとう
java - エンティティークラスのマッピングが JPA 1.0 構文であることを Hibernate にどのように伝えますか?
これはへのフォローアップです
*ネストされた*複合主キーで@IdClassを使用するJPA 1.0の制限?
EclipseLink には javax.persistence_1.0.0.jar が付属しており、これもクラスパスに配置したため、エンティティ クラスのバージョンを認識できます。しかし、Hibernate はエンティティークラスが JPA 1.0 にあることをどのように認識しているのでしょうか? それはできますか?もしそうなら、どのように?
sql - SQLで複合主キーから単一の属性キーに移行する方法は?
複合主キーを使用するテーブルを一意の主キーに移行したいと考えています。
私のテーブルは次のとおりです。
テーブル REGM は、複合主キーとして LNG_CD と REG_NRI を使用します。代わりに主キー名 REGM_PK を使用したいのですが、それでも LNG_CD と REG_NRI を外部キーとして使用します。
これまでのところ、これが私のアプローチです:
1 - 制約を削除します
2 - 主キー列を追加する
3 - シーケンスを作成する
4 - 列にシーケンスを入力します
5 - REGM_PK 列を非ヌルにする
6 - 主キー制約を作成する
これまでのところ、ステップ 4 でブロックされています
日付の作成/コピー/テーブルの削除もできることを知っています。しかし、私はそれをSQLの方法で行うことを好みます。
java - 複数列/複合主キー (JPA 1.0 @IdClass) を持つテーブルで継承を実装するにはどうすればよいですか?
次の表を考えます。
JPA 1.0 @IdClass アノテーションを使用してエンティティと複合主キー クラスをどのように実装しますか?
発生するサブ質問は次のとおりです。
- サブクラスは独自の ID クラスを定義しますか?
- もしそうなら、それらはスーパークラスの ID クラスから継承しますか?
- サブクラスは @IdClass アノテーションを取得しますか?
質問は意図的に素朴であることに注意してください。クラス宣言を確認したいのですが、getter と setter のないフィールド アクセス アノテーションを持つプロパティで十分でしょう。
ありがとう
ruby-on-rails - Ruby エラー、読み込むファイルがありません -- composite_primary_keys
Rails は初めてですが、Ruby 1.9.2 と Rails 3 を実行しているアプリで複合主キーを使用する必要があります。Ruby on Rails アプリで適切に機能する複合キーを取得できません。私はcompositekeysサイトの指示に従いましたが、まだ同じエラーが発生しています: no such file to load -- composite_primary_keys
1 - sudo gem install composite_primary_keys
2 - conf/environment.rb ファイルの最後に require 'composite_primary_keys' を
追加 3 - set_primary_keys を追加
私の宝石リストは次のようになります。
私のドメインクラスは次のようになります。
私の環境ファイルは次のようになります。
「レーキ テスト」を実行すると、次のようなエラーが表示されます。
単体テストは次のとおりです。
次のスレッドを確認しましたが、このスレッドは該当しません。レーキ、ジェムなどはすでにチェック済みです。
ありがとうございます!;)
hibernate - 継承されたクラスを持つ JPA / Hibernate の複合キー
以下のように、クラス構造で定義された複合 ID があります。残念ながら、見つからない「part2」について不平を言う休止状態エラーが常に発生します。
「@IdClass のプロパティがエンティティ MoreClass に見つかりません: part2」
誰でも問題を解決するのを手伝ってくれますか? (または、少なくとも役立つ jpa/hibernate doc を教えてください。)
mysql - マルチフィールド主キーを使用したMySqlの質問
3つの列から構築された主キーを持つテーブルがあります。別の表では、それらを1つの単一列の外部キーとして参照したいと思います。これはどのように解決できますか?たぶんIDエイリアス?または、これをどのように解決できますか?
android - 複合主キーを持つandroid sqlite3テーブルへの挿入に関する問題
複合主キーを持つテーブルがあり、挿入に問題があります。テーブルの作成に使用されるコードは次のとおりです。
私が抱えている問題は、CourseId または EventName の列に対して一意ではない可能性があるが、2 つの一意の組み合わせである値を持つレコードを挿入する場合です。たとえば、次の 2 つの挿入を実行しようとすると:
次のエラーが表示されます。
2番目の挿入はDBに挿入されません。このエラーが発生するのはなぜですか? 複合主キーでは、両方の値の組み合わせが一意である必要があると思いました。上記の挿入では、CourseId の値が同じであっても、EventName 列の値が異なります。これは 2 つの一意の組み合わせ、つまり 2 つの異なる主キーと見なされるべきではありませんか?
私のテーブルは、CourseId ごとにいくつかの異なるイベントを保持できる必要がありますが、各イベントはコースごとに一意である必要があります。次のようにテーブルに値を挿入できるようにする必要があります。
EventName CourseId 課題 1 60-415 プロジェクト 1 60-415 課題 2 60-415 プロジェクト 2 60-415 課題 1 60-367 プロジェクト 1 60-367
等々。どうすればこれを機能させることができるか教えてもらえますか?これらの複合 PK が一意のエントリとして認識されないのはなぜですか? どんな助けでも大歓迎です。
挿入に使用しているJava関数は次のとおりです。
これが問題を引き起こしている可能性はありますか?
java - を使用して休止状態マッピング ファイルの 2 つの列を結合するにはどうすればよいですか?鬼ごっこ?
1 つのクラスを 2 つのテーブル (どちらも複数の列の主キーを持つ) にマップする必要があります。TABLE1 に id1、id2、id3 があり、TABLE2 に主キーとして id1、id2 があるとします。マッピングファイルを書くとき、私は次のようなことをします:
ご覧のとおり、結合タグはキー タグを 1 つだけ受け入れます。2 番目の ID をマップするにはどうすればよいですか?
敬具、
Despot
PS: メリー クリスマスと幸せで生産的な新年 ;)