問題タブ [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 投票する
1 に答える
239 参照

nhibernate - NHibernate - 3 つのクラス間の 3 つの双方向関係は N+1 を与える

三角形を形成する少し複雑なオブジェクト モデルがあります。とUserのコレクションを持つエンティティがあります。タクソノミーもあります。そして便宜上、私はその所有者を知りたいと思っていました。図を参照してください:ItemsTaxonomiesItemItemTaxonomyTaxonomyItem

ダイアグラム

したがって、これにより 3 つの双方向関係が作成されます。私の問題は、NHibernate でそのようにマップし、指定された ID を持つユーザーを要求すると、Select N+1問題が発生することです。

最初Userは熱心にフェッチされた がロードされますItems。次に、それに接続さTaxonomiesれた熱心にフェッチされてロードされますItem。これは予想どおりであり、マッピングで定義されています。しかし、現在、 にItems関連してロードする N+1 クエリがありますTaxonomies

クエリ

オブジェクト グラフのすべての部分が既に読み込まれているため、これは冗長です。この問題は、User-Item関係を横から一方向にすると消えUserますが (予想どおり、クエリは 2 つしかありません)、その後方関係を削除したくありません。双方向の 3 つのリレーションすべてで最適なフェッチを行うことは可能ですか?

ここに私のマッピング部分があります:

そして、可能な限り簡単な方法でデータベースにクエリを実行します。

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

c# - NHiberneate の双方向関係の例を探しています

NHiberneate の双方向関係の例を探して、xml マークアップと POCO クラスがどのように見えるか、また双方向関係を更新する方法を確認しています。

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

nhibernate - NHibernate は本当に透過的な永続性を提供しますか

ドメインモデルを尊重するという約束に誘惑されて、永続性のためにNhibernateを使い始めたので、ドメインオブジェクトの関係マネージャーを実装しようとしました。基本的に、双方向の 1 対多および多対多の関係の管理に関してコードを DRY するために、これらの関係を別のクラスで管理することにしました。一対多または多対一のプロパティが設定されている場合、ディクショナリに 2 つのオブジェクトのエントリが作成されます。キーは、多面を保持するコレクション値を持つ一面、または値を持つ多面のいずれかです。片側。

タイプの特定の組み合わせに対する 1 対多の関係は次のようになります。

多くの側では、コード スニペットは次のようになります。

一方で、この場合、SubstanceGroup のスニペットは次のようになります。

ドメインオブジェクトを使用するだけで、これはうまく機能します。ドメイン オブジェクトでは、適切なリレーションを取得する抽象ファクトリを参照するだけで、一方からリレーションを設定できるため、自動的に双方向になります。

ただし、NH が問題を引き起こすと、辞書に重複したキーが作成されます。どういうわけか NH は、ドメイン オブジェクトの新しいコピー (?) を使用して null 値 (!) を持つリレーション プロパティを設定します。したがって、ドメイン オブジェクトが保存されると、そのドメイン オブジェクトの 2 つのエントリが、たとえば関係の多側、つまり _manyToOne ディクショナリに作成されます。

この問題で髪の毛が抜けてしまいます。何が起こっているのかわかりません??

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

nhibernate - HasMany関係でのFluent NHibernate挿入親IDの問題

NHibernate が親の外部キーなしで子エンティティを挿入する理由がわかりません。これを解決するために私が見つけた唯一の方法は、双方向の関係を使用することです。別の方法はありますか?

クラスは次のとおりです。

これが私のFluent NHibernateマッピングです

親の子コレクションに子を追加して親を保存すると、親と子がデータベースに挿入されますが、親への外部キーなしで子が挿入されます (null 値があります)。

これは、生成される挿入です。

ただし、次のようにする必要があります。

これを双方向の関係で解決したくないことを付け加えておきます。子に親への参照を持たせたくありません。ありがとう!!

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

hibernate - JPA のスーパークラス エンティティ プロパティとの双方向の関係

JPAでツリーのような構造を実装しようとしています。「フォルダー」エンティティと「テスト」エンティティがあります。フォルダーには、フォルダーとテストの両方を含めることができます。テストには何も含まれていません。

test と folder の両方に Node スーパークラスがあり、次のようになります。

そして、これが Folder クラスです。

したがって、主な問題は、先祖でオーバーライドされていないスーパークラス プロパティに関連する、mappedBy プロパティです。このような例外が発生した原因です。

Folder クラスの "folders" および "test" プロパティに対するトリッキーなマッピングがある可能性があり、それについて少し助けが必要です。

編集: targetEntity=Node.class を使用して、Folder クラスのフォルダーとテストの両方のプロパティを指定しました。

そして、それはうまくいきます。しかし、うまくいきません。テストとフォルダーの両方が両方のプロパティにマップされました (なぜ例外が発生しないのかわかりません)。それらを個別に取得する必要があります。

だから私はまだそれを達成するための適切なマッピングを探しています. 私はどんな助けにも感謝します。

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

jpa - エンティティ Bean から関連するエンティティ Bean のリストをクリアできない

以下のコードを実行しようとしていますが、「削除されたエンティティをマージできません」というエラーが表示され続けます。

私のDBテーブルは次のようになります。

私のJavaコード:

このすべての論理を理解できないようです。誰かがそれが何であるかを説明できますか? 既に回答を検索しようとしましたが、関連する結果が得られるキーワードを定義するのは難しいと感じています。

アップデート:

バナー エンティティ:

BannerPeriod エンティティ:

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

c# - 公式のc#ドライバーを使用して、mongodbに双方向の関係を持つオブジェクトを保存します

私はこのような2つのクラスを持っています:

クラスCompanyのオブジェクトを保存したい場合:

StackOverFlow例外がスローされます。

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

java - Spring @ResponseBody Json サイクリック リファレンス

Spring 3.x@ResponseBodyを使用して json/xml 応答を生成しようとしています。多対多のリレーション b/w テーブルがあり、json が LazyInitializationException をスローしているときに JPA 2.0 ORM を使用しています。

「eager fetch」を指定すると、循環参照になります。

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

scala - Scala に双方向マップのようなものはありますか?

一意の識別子の 2 つの列をリンクし、最初の列の値を 2 番目の列の値で取得し、2 番目の列の値を最初の列の値で取得できるようにしたいと考えています。何かのようなもの

Scalaにそのような機能はありますか?

実際にはもっと必要です: トリプレット内の任意のものを別のトリプレット内で選択するための 3 つの列 (マップ全体で個々の値が複数回一致することはありません)。ただし、2 列の双方向マップも役立ちます。