問題タブ [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.
nhibernate - NHibernate - 3 つのクラス間の 3 つの双方向関係は N+1 を与える
三角形を形成する少し複雑なオブジェクト モデルがあります。とUser
のコレクションを持つエンティティがあります。タクソノミーもあります。そして便宜上、私はその所有者を知りたいと思っていました。図を参照してください:Items
Taxonomies
Item
Item
Taxonomy
Taxonomy
Item
したがって、これにより 3 つの双方向関係が作成されます。私の問題は、NHibernate でそのようにマップし、指定された ID を持つユーザーを要求すると、Select N+1問題が発生することです。
最初User
は熱心にフェッチされた がロードされますItems
。次に、それに接続さTaxonomies
れた熱心にフェッチされてロードされますItem
。これは予想どおりであり、マッピングで定義されています。しかし、現在、 にItems
関連してロードする N+1 クエリがありますTaxonomies
。
オブジェクト グラフのすべての部分が既に読み込まれているため、これは冗長です。この問題は、User-Item
関係を横から一方向にすると消えUser
ますが (予想どおり、クエリは 2 つしかありません)、その後方関係を削除したくありません。双方向の 3 つのリレーションすべてで最適なフェッチを行うことは可能ですか?
ここに私のマッピング部分があります:
そして、可能な限り簡単な方法でデータベースにクエリを実行します。
c# - NHiberneate の双方向関係の例を探しています
NHiberneate の双方向関係の例を探して、xml マークアップと POCO クラスがどのように見えるか、また双方向関係を更新する方法を確認しています。
nhibernate - NHibernate は本当に透過的な永続性を提供しますか
ドメインモデルを尊重するという約束に誘惑されて、永続性のためにNhibernateを使い始めたので、ドメインオブジェクトの関係マネージャーを実装しようとしました。基本的に、双方向の 1 対多および多対多の関係の管理に関してコードを DRY するために、これらの関係を別のクラスで管理することにしました。一対多または多対一のプロパティが設定されている場合、ディクショナリに 2 つのオブジェクトのエントリが作成されます。キーは、多面を保持するコレクション値を持つ一面、または値を持つ多面のいずれかです。片側。
タイプの特定の組み合わせに対する 1 対多の関係は次のようになります。
多くの側では、コード スニペットは次のようになります。
一方で、この場合、SubstanceGroup のスニペットは次のようになります。
ドメインオブジェクトを使用するだけで、これはうまく機能します。ドメイン オブジェクトでは、適切なリレーションを取得する抽象ファクトリを参照するだけで、一方からリレーションを設定できるため、自動的に双方向になります。
ただし、NH が問題を引き起こすと、辞書に重複したキーが作成されます。どういうわけか NH は、ドメイン オブジェクトの新しいコピー (?) を使用して null 値 (!) を持つリレーション プロパティを設定します。したがって、ドメイン オブジェクトが保存されると、そのドメイン オブジェクトの 2 つのエントリが、たとえば関係の多側、つまり _manyToOne ディクショナリに作成されます。
この問題で髪の毛が抜けてしまいます。何が起こっているのかわかりません??
nhibernate - HasMany関係でのFluent NHibernate挿入親IDの問題
NHibernate が親の外部キーなしで子エンティティを挿入する理由がわかりません。これを解決するために私が見つけた唯一の方法は、双方向の関係を使用することです。別の方法はありますか?
クラスは次のとおりです。
これが私のFluent NHibernateマッピングです
親の子コレクションに子を追加して親を保存すると、親と子がデータベースに挿入されますが、親への外部キーなしで子が挿入されます (null 値があります)。
これは、生成される挿入です。
ただし、次のようにする必要があります。
これを双方向の関係で解決したくないことを付け加えておきます。子に親への参照を持たせたくありません。ありがとう!!
hibernate - JPA のスーパークラス エンティティ プロパティとの双方向の関係
JPAでツリーのような構造を実装しようとしています。「フォルダー」エンティティと「テスト」エンティティがあります。フォルダーには、フォルダーとテストの両方を含めることができます。テストには何も含まれていません。
test と folder の両方に Node スーパークラスがあり、次のようになります。
そして、これが Folder クラスです。
したがって、主な問題は、先祖でオーバーライドされていないスーパークラス プロパティに関連する、mappedBy プロパティです。このような例外が発生した原因です。
Folder クラスの "folders" および "test" プロパティに対するトリッキーなマッピングがある可能性があり、それについて少し助けが必要です。
編集: targetEntity=Node.class を使用して、Folder クラスのフォルダーとテストの両方のプロパティを指定しました。
そして、それはうまくいきます。しかし、うまくいきません。テストとフォルダーの両方が両方のプロパティにマップされました (なぜ例外が発生しないのかわかりません)。それらを個別に取得する必要があります。
だから私はまだそれを達成するための適切なマッピングを探しています. 私はどんな助けにも感謝します。
jpa - エンティティ Bean から関連するエンティティ Bean のリストをクリアできない
以下のコードを実行しようとしていますが、「削除されたエンティティをマージできません」というエラーが表示され続けます。
私のDBテーブルは次のようになります。
私のJavaコード:
このすべての論理を理解できないようです。誰かがそれが何であるかを説明できますか? 既に回答を検索しようとしましたが、関連する結果が得られるキーワードを定義するのは難しいと感じています。
アップデート:
バナー エンティティ:
BannerPeriod エンティティ:
c# - 公式のc#ドライバーを使用して、mongodbに双方向の関係を持つオブジェクトを保存します
私はこのような2つのクラスを持っています:
クラスCompanyのオブジェクトを保存したい場合:
StackOverFlow例外がスローされます。
java - Spring @ResponseBody Json サイクリック リファレンス
Spring 3.x@ResponseBody
を使用して json/xml 応答を生成しようとしています。多対多のリレーション b/w テーブルがあり、json が LazyInitializationException をスローしているときに JPA 2.0 ORM を使用しています。
「eager fetch」を指定すると、循環参照になります。
scala - Scala に双方向マップのようなものはありますか?
一意の識別子の 2 つの列をリンクし、最初の列の値を 2 番目の列の値で取得し、2 番目の列の値を最初の列の値で取得できるようにしたいと考えています。何かのようなもの
Scalaにそのような機能はありますか?
実際にはもっと必要です: トリプレット内の任意のものを別のトリプレット内で選択するための 3 つの列 (マップ全体で個々の値が複数回一致することはありません)。ただし、2 列の双方向マップも役立ちます。