問題タブ [composite-id]

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

java - 複合 ID での Hibernate マッピングの問題

Java アプリで hibernate3 を使用して、sqlserver 2008 エンタープライズにアクセスしています。休止状態のマッピングは複合 ID を使用し、モデルをロードしようとすると null が返されます。私はそれを解決するために何日も費やしましたが、それでも結果はありません。複数のフィールドベースの PK には複合 ID マッピングを使用する必要がありますが、私のテーブルにはそのような PK がありません。JBoss Hibernate Tool (Eclipse プラグイン) が複合 ID マッピングでそれを生成したのはなぜですか?

助けやコメントをいただければ幸いです。

休止状態のモデル:

}

}

休止状態のマッピング:

テーブル ダンプ:

テーブル:

DAO コード:

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

hibernate - JPA エンティティ -- org.hibernate.TypeMismatchException

環境: JDK 1.6、JEE5 Hibernate Core 3.3.1.GA、Hibernate Annotations 3.4.0.GA DB: Informix

リバース エンジニアリングを使用して、db スキーマから永続化エンティティを作成しました [注: これは作業中のスキーマであり、変更できません]

basic_auth_accounts org.hibernate.TypeMismatchException のリストを選択すると例外が発生する: クラス ebusiness.weblogic.model.UserAccounts に間違ったタイプの ID が提供されました。予想: クラス ebusiness.weblogic.model.UserAccountsId、クラス ebusiness.weblogic.model.BasicAuthAccountsId を取得

basic_auth_accounts と user_accounts の両方に複合主キーと 1 対 1 の関係があります。ここで何をすべきか手がかりはありますか?これは、私がこれを機能させるために非常に重要です。ネット上で実質的な解決策を見つけることができず、hibernate が行った ID クラスを作成すると言う人もいれば、1 対 1 の関係を持たないと言う人もいます。

私を助けてください!!

クラスのメイン コードは次のとおりです。

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

nhibernate - NHibernate、データベースに列が存在する場合、エンティティをロードできませんでした

これはおそらく答えるのが簡単な質問ですが、私はそれを理解できません。

「City」に多対1の複合IDを持つ「Address」に多対1の「Company」クラスがあります。「会社」をロードすると「住所」がロードされますが、「住所」のプロパティを呼び出すと、エラーが発生します。

内部例外は次のとおりです。

私が理解していないのは、SQL Server 2005 でクエリを実行でき、それが機能するということです。さらに、これらの列は両方ともアドレス テーブルに存在します。

ここに私のHBMがあります:

会社を呼び出す私のコードは次のとおりです。

そして最後に、ここでエラーが発生します:

「user」は上記のコードですでに初期化されています。

ありがとう。

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

.net - NHibernateで編集できる複合IDを持つことは可能ですか?

複合主キーとして使用される多くの列を持つテーブルがある状況があります。

さらに悪いことに、ビジネスロジックでは、これらを変更可能にする必要があります。

私はnhibernateを使用しており、これらをロード/保存するためのマッピングに問題はありません。ただし、プロパティ値を更新し、updateを呼び出すときにこれらの変更をDBに反映させる必要があります。

これはレガシーシステムであるため、db構造の変更はありません(恐ろしい)。

この問題を解決するためにnhibernateでできることはありますか?nhibernateは、そのキーを変更することさえ許可します。

私が使用しているのは、バックエンドとして.net4.0、nhibernate 2.1、fluentnh 1.0、およびsqlserverです。

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

nhibernate - nhibernate-コレクションのマージに関する問題

親子関係があり、子は複合IDを持っています

私が欲しいもの:1)DBから親を取得し、セッションを閉じ、サービスからクライアントに親を渡します2)親がクライアントから戻ったら、新しいセッションで親とそのすべての子をDBに保存します

ステップ2では、var merged = Session.Merge(product);を呼び出します。

NHibに子コレクションの追加/削除された要素を処理させる唯一の方法のように見えるのでMerge()を使用します。しかし、nHibernateは新しく追加された子のすべてのIDをリセットするため、ParentId==0およびChildId==の新しい子があります。 0.問題は、Merge()で渡されるエンティティからIDを保持するようにNHibernateに指示する方法です。..助けてください。

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

fluent-nhibernate - Fluent NHibernate マッピング - 複合キー

FNH で次のテーブル/エンティティをマップしようとしていますが、どこにも速くないようです!

(S#arp アーキテクチャ フレームワークも使用していることに注意してください)

複合 ID を使用する場合は、複合 ID を別のクラスに分離することをお勧めします。 ハイバネート複合キー

私は非常に多くのマッピングの組み合わせを試しましたが、今では完全に混乱しています。

これは私の最新のショットです:

マッピングを生成しようとすると、多くの例外がスローされました。最新のものは次のとおりです。

私が間違っていることは明らかですか?私は NH と FNH を初めて使用しますが、これはこの投稿から明らかかもしれません。:-) また、S#arp アーキテクチャを使用しているときに、このような複合 ID を使用した人はいますか? ベストプラクティスは何ですか (代理キーを使用する以外:-))?

どうもありがとうございました...そして長い投稿について申し訳ありません。

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

nhibernate - NHibernate を使用した複合キー/ID マッピング

データベースに次のテーブルがあります。

通常、多対多の関係を使用して「AnnouncementsRead」をマップしますが、このテーブルには追加の「DateRead」フィールドもあります。

これまでのところ、次のエンティティを定義しました。

次のマッピングを使用します。

ただし、これを実行すると、次のエラーが表示されます。

誰かが私を正しい方向に向けることができれば幸いです。ありがとう

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

nhibernate - 複合キーの問題の一部にマッピングされた NHibernate ナビゲーター - レガシー データベースの使用

変更できないレガシーデータベースがあります。そして、ガベージで遅すぎる古い DataAccess 層の代わりに NHibernate に移行しようとしています。

次のようなテーブルがあります。

GPI テーブルには (PU_ID, PAR_ID, Data, Data2) 列があります
BLOCK テーブルには (GA_ID, Data, PAR_ID) 列があります
COMPANY テーブルには (PU_ID, Data) 列があります

上記のテーブルに対してこれらのマッピングを作成しました。

GPI

ブロック

会社

クラスはとてもシンプルでわかりやすいです。すべてが Equals および GetHashCode メソッドを実装しています。

動作するナビゲーターのリストは次のとおりです。

  • GroupPartnerInterest.Company - 素晴らしい作品
  • Company.GroupPartnerInterests - 素晴らしい作品
  • GroupPartnerInterest.Company - 素晴らしい作品

そして、これら2つは失敗します:

  • Block.GroupPartnerInterests:

私は単体テストを持っています:

GPI マッピング テストでブロック ナビゲーション マッピングをコメントアウトすると、動作し、いくつかのデータが出力されます。

Block #1
Company 'LALA':
Company 'LALA SA': Company 'BG PO': Company 'LIMPOPO': Company 'HAHA': Company 'Other partner(s)': Block #4







しかし、テストは次のエラーで失敗します。

NHibernate.LazyInitializationException: Initializing[Model.EntityClasses.Block#999] - ロールのコレクションの遅延初期化に失敗しました: Model.EntityClasses.Block.GroupPartnerInterests、セッションまたはセッションが閉じられませんでした。

「999」は既存の PAR_ID です。データは一貫しています。この PAR_ID を持つ 2 つのブロックと、GPI にいくつかのレコードがあります。

ある時点でセッションを閉じるのはなぜですか?

  • GroupPartnerInterest.Blocks:

単体テストは上で述べたものとほぼ同じで、異なるプロパティが使用されているだけです。エラーは次のとおりです。

NHibernate.MappingException: NHibernate.MappingException: プロパティが見つかりません: エンティティ Model.EntityClasses.GroupPartnerInterest の GroupId。

GPI マッピングの Blocks navigator の要素から "property-ref=GroupId" を削除すると、次の例外が発生します。

NHibernate.FKUnmatchingColumnsException: NHibernate.FKUnmatchingColumnsException: 外部キー (FKA3966498349694F:[BLOCK] [PAR_ID])) には、参照される主キー ([GPI] [PAR_ID, PU_ID]) と同じ数の列が必要です。

GroupPartnerInterest.Blocks ナビゲーターが機能するように、ブロックを GPI にマップする方法はありますか?

ありがとう、アレックス

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

java - comosite 主キーを持つオブジェクトの jpa 更新

オブジェクトの複合主キーがあります。jpa を使用してオブジェクトを更新するにはどうすればよいですか?

通常、次のコードを使用します

主キーが複合であるオブジェクトがある場合、どうすれば更新を実装できますか?

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

jpa - JPA - 基準 API と EmbeddedId

基準を使用して次のクエリを作成したいと考えています。EmbeddedIdが定義されたエンティティがあります。

そして、私がやろうとしている基準クエリは次のとおりです。

しかし、これは IllegalArgumentException をスローしています。

私もこのクエリで試しました:

そしてこれも…

運がない。私の質問は、クラスが Embedded および EmbeddedId アノテーションを使用している場合、基準を使用してクエリを作成するにはどうすればよいですか?

ありがとう!。マウロ。