問題タブ [bidirectional-relation]

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

nhibernate - NHibernate多対多テーブルは更新されません

多対多の関係にある「News」、「Tags」、「News_Tags」の3つのテーブルがあります。

次のマッピングでは、「News」テーブルと「Tags」テーブルが更新されていますが、「News_Tags」は更新されていません。

誰か助けてもらえますか?

ニュース:

タグ:

News_Tags

どうもありがとう

Daoming。

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

nhibernate - nhibernate 多対多マッピング: バッグ コレクション全体が削除され、再挿入されたのはなぜですか?

Nhibernate ユーザー、専門家、専門家、および開発者が期待されています。助けてください !!!

2 つのクラス間の an:m 関係を実現したい。学生はより多くのコースに参加し、コースはメンバーとしてより多くの学生で構成されます。各サイトから両方のリストを取得するために、バッグと多対多の双方向関連付けを行います。

2 つの Student クラスと Course クラス:

データベースには、2 つのテーブル t_Student、t_Course、および関連テーブル tr_StudentCourse(id, student_id, course_id) があります。

コースは、双方向の関連付けで逆に選択されました。nhibernate ドキュメントのセクション 6.8 の例 (カテゴリ、アイテム) と同じことを行いました。そのため、Add/Remove メソッドを呼び出してリスト MyCourses にコースを挿入した後、学生オブジェクトを保存しました。

st1、c1、およびそれらの関係 (st1、c1) はデータベースで見つけることができます。リレーション データセットは (id= 1 , st1.id, c1.id) と (id= 2 , st1.id, c2.id) です。次に、オブジェクト st1 にさらにコースを追加します。

3 つの関係データセットが表示されますが、2 つの古い関係が削除され、新しい 3 つの関係が別の新しい ID で作成されました。(id= 3 , st1.id, c1.id)、(id= 4 , st1.id, c2.id) および (id= 5 , st1.id, c3.id)。リレーション テーブルに id=1 と 2 以上のデータセットはありません。

Student.MyCourse からコースを削除してから学生オブジェクトを保存すると、同じことが削除されます。すべてのコレクションも削除され、削除された要素が 1 つ少ない新しいリストが再作成されました。この問題により、リレーション テーブルの ID が作成され、リレーションのバックアップが非常に高速になり、問題が発生します。

インターネット、ドキュメント、フォーラムを数日調べて、古いコレクション全体が削除され、変更ごとに新しいコレクションが作成された理由を調べましたが、成功しませんでした. これは nhibernate マッピングのバグですか、それとも何か間違ったことをしたのでしょうか?

あなたの助けと答えにとても感謝しています。

Nhibernate のドキュメントhttp://nhforge.org/doc/nh/en/index.htm

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

uml - Footballer Mapper と Bowler Mapper 間の双方向の関連付け

この質問は、Martin Fowler 著、Patterns Of Enterprise Application Architecture という本の特定の UML ダイアグラムに関するものです。

302 ページの「継承マッパー」クラス図で、Footballer MapperBowler Mapperの間に「双方向の関連付け」があるのはなぜですか?

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

nhibernate - NHibernate双方向1対1マッピングの問題

NHibernateで双方向の1対1のマッピングを作成しようとしているときに、オブジェクトの参照を再帰的に取得できないことがわかりました。

例:との間に1対1の関係があるPersonとしAddressます。

次に、次のコードを実行した後、

からの非null値が必要p.Address.Personです。つまり、IDが1の同じ人です。

しかし、プロパティは値を返していnullます。

問題を解決するために何を探す必要がありますか?

私のデータベーステーブルは次のようなものです。

Person.hbm.xml

Address.hbm.xml

私もエラーが発生しています:

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

java - @OneToOne 双方向アソシエーションを熱心にロードするために hibernate が 2 つのクエリを実行するのはなぜですか?

i には B エンティティを持つエンティティ A があり、B には @OneToOne 双方向関連付けを持つ A があります。

ここで、すべての A レコードを見つけると、hibernate は B で左外部結合を使用して次のような 2 つのクエリを実行します。

最初のクエリで A フィールドと B フィールドをロードすれば問題ありませんが、2 番目のクエリを実行して A をリロードするのはなぜですか? このクエリは A のコンテンツを B にロードすると思いますが、この A は明らかに B を含む A です...最初のクエリで既にロードされているので、そうではありませんか?

- 編集 -

エンティティ A:

エンティティ B:

これが状況であり、A の findAll には 2 つのクエリが必要です...なぜですか?

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

python - MongoEngineでの双方向関係の実装

MongoDBとMongoEngineを使用してデータを保存するDjangoアプリケーションを構築しています。問題の簡略版を提示するために、UserとPageの2つのクラスが必要だとします。各ページは、それ自体をユーザーに関連付け、各ユーザーをページに関連付ける必要があります。

(ページはユーザーの前に定義する必要があることに注意してください。循環依存を処理するPythonicの方法がない場合は、お知らせください。)各ドキュメントは問題なく作成および保存できますが、ページをユーザーに割り当てるとエラーが発生します。

この例外がスローされる理由、私が間違っていること、およびそれを回避する方法を誰かが説明できますか?

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

c# - FluentNHibernate自動マッピングを使用した複数の双方向の1対多の関連付けの作成

私はNHibernateと.NETフレームワークにかなり慣れていません。

1対多の関係のSubprojectクラスとProjectTaskクラスを持つProjectクラスをマップしたいと思います。

私のエンティティは、抽象基本クラスからIdプロパティを継承します。

自動マッピングを使用してオーバーライドし、マッピングを再定義します。

サブプロジェクトクラスとの関連付けのみをマップすると、すべてが正常に機能し、Project.Subprojectsのサブプロジェクトクラスのすべてのインスタンスがデータベースに正しく保存されます。ProjectTaskクラスに2番目のオーバーライドを使用すると、次の例外が発生します。

---> NHibernate.HibernateException:データベースに「ProjectId」という名前のオブジェクトがすでに存在します。制約を作成できませんでした。以前のエラーを参照してください。

---> System.Data.SqlClient.SqlException:データベースに「ProjectId」という名前のオブジェクトがすでに存在します。

誰か知っていますか、なぜこれが起こるのですか?

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

sql - これら 2 つの空の SQL テーブルに「アーノルド シュワルツェネッガー」と「ハスタ ラ ビスタ ベイビー」を挿入するには、どのような SQL ステートメントを使用すればよいでしょうか?

次の空の SQL テーブルに「アーノルド シュワルツェネッガー」と「ハスタ ラ ビスタ ベイビー」を挿入するには、どのようなステートメントを使用すればよいでしょうか?

この質問のタイトルは当初、「双方向の関連付けと自動生成された整数 PK を使用して最初のレコードを SQL テーブルに挿入する方法は?」というものでした。しかし、それが正しい言い回しであるかどうかはわかりませんでした... 基本的に、2 つのテーブルActorsCatchPhrases.

Actors次のようになります。

CatchPhrases次のようになります。

したがって、アクターは複数のキャッチ フレーズを持つことができますが、少なくとも 1 つ持つ必要があります。キャッチ フレーズは俳優に関連付けられます。現在、どちらのテーブルにもデータはありません。

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

nhibernate - nhibernate - nhprof - 1 対多の双方向アソシエーションのための遅延ロードでの無制限の結果セット

対応する子を持つ標準のカテゴリ ドメイン エンティティがあります。つまり、カテゴリとそれに対応するサブカテゴリです。これを以下に示します。かなり標準的なものです。

NHibernate プロファイラーを使用して、すべてが最適に実行されていることを確認しています。ただし、「RemoveCategory」メソッドを呼び出してカテゴリを渡してサブカテゴリを削除する場合、「_children」コレクションの遅延ロードを開始する「_children」という名前の基になるコレクションにアクセスする必要があります。

これにより、NHProf で "無制限の結果セット" アラートが発生します。これは、制限を指定していないため意味があります。コレクション全体をロードします。このコレクションは非常に大きくなる可能性があるため、制限を指定したいと思います。

無制限の結果に関する nhprof Web サイトの例 (以下に示す) を見ましたが、これを使用する方法がわかりません。

これは、データを表示しているときに便利なようですが、エンティティを更新して最終的に永続化したいと考えています。コレクションの遅延ロードの制限を指定する方法についてのアイデアはありますか?

敬具

ムハンマド

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

java - 休止状態のエンティティを構築するときに双方向の関係を処理する方法は?

JPA/Hibernate を使用して、グループとアカウントの 2 つのエンティティ間の関係をモデル化したいと考えています。アカウントは複数のグループを持つことができますが、その逆はできないため、アカウントとグループの間には OneToMany の関係があります。Account私の同僚は、エンティティなどGroupをモデル化することを提案しました

私の質問はaddToAccount、のコンストラクターでのヘルパー メソッドの使用についてですGroup。私の同僚によると、この方法が必要なのは、2 つのエンティティの一貫したメモリ モデルを確保するために、2 つのエンティティ間の双方向の関係を両側から更新する必要があるからです。

addToAccountただし、コンストラクターでメソッドを呼び出すことはお勧めできません。

  1. ListofGroupは遅延フェッチされるため、メソッドを呼び出すには 開いaddToAccountているトランザクションが必要です。したがって、のコンストラクターは Group、開いているトランザクション内でのみ呼び出すことができます。私の意見では、これは非常に厄介な制限です。

  2. コンストラクターの引数として指定されたAccountオブジェクトは、コンストラクターGroupによって変更されます。私の意見では、これはコンストラクターの驚くべき副作用であり、Group 起こるべきではありません。

私の提案は、次のような単純なコンストラクターをより適切に使用することでした

双方向の関係を手動で処理します。しかし、多分私は間違っています。休止状態のエンティティを構築するときに双方向の関係を処理する一般的な方法はありますか?