問題タブ [fetching-strategy]

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 投票する
5 に答える
16554 参照

nhibernate - 複数レベルでの NHibernate Eager fetching

ISession.Get(id) を使用して、特定の顧客の全体を取得したい Customer-Order-Line という 3 レベルのエンティティ階層があります。次の XML フラグメントがあります。

customer.hbm.xml:

order.hbm.xml:

fetch="join" 属性を使用して、各親の子エンティティをフェッチすることを示しました。これにより、正しい SQL が構築されました。

これまでのところ、これは問題ないようです。SQL は正しいレコードのセット (1 つの異なる orderid のみ) を返しますが、テストを実行して Orders と Lines の (NH からの) エンティティの正しい数を確認すると、間違った結果が得られます。

(テスト データから) 1xOrder と 4xLineを取得する必要がありますが、4xOrder と 4xLine を取得しています。NH は、結果セット内の Order 情報の「繰り返し」グループを認識しておらず、Order エンティティを正しく「再利用」していないようです。

私はすべての整数 ID (PK) を使用しており、NH がこれらのエンティティの同等性を確認することを期待して、この ID を使用して T の IComparable と T の IEquatable を実装しようとしました。また、ID を使用するために Equals と GetHashCode をオーバーライドしようとしました。これらの「試み」はいずれも成功していません。

「複数レベルのフェッチ」は NH でサポートされている操作ですか? もしそうなら、それをサポートするために必要な XML 設定 (またはその他のメカニズム) はありますか?


NB: sirocco のソリューションを使用して、自分のコードにいくつかの変更を加えて、最終的にこれを解決しました。xml は、すべてのコレクションに対してバッグからセットに変更する必要があり、エンティティ自体は、一意性を確立するためのセットの要件である IComparable<> を実装するように変更されました。

InternalID フィールドの使用に注意してください。これは、新しい (一時的な) エンティティに必要です。そうしないと、最初は ID がありません (私のモデルでは、保存時に ID が提供されます)。

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

.net - .NET で異なるソース データベースの 2 つのデータ テーブルを結合しますか?

.NET で異なるソース データベースからの 2 つのデータ テーブルをどのように結合しますか? 理想的には、手動で 2 つのクエリを作成し、1 つのフィールドに結合するだけです。

この場合、リンク サーバーとスケジュールされたインポートはオプションではありません。データ関係オブジェクトを調べましたが、(間違っていたら訂正してください) 親子関係でしか機能しません。

0 投票する
4 に答える
32620 参照

jpa - メソッドの JPA フェッチ タイプを変更する方法はありますか?

エンティティ オブジェクトを編集せずに単一のメソッドで JPA フェッチ タイプを変更する方法はありますか?

JPAエンティティクラスで構成される共有ORMレイヤーがあります。この ORM レイヤーは、2 つの DAO レイヤーからアクセスされます。1 つの DAO には、私の Web アプリケーションの場合と同様に遅延フェッチが必要です。もう 1 つの DAO には、スレッドセーフにする必要があるため、熱心なフェッチが必要です。

以下は、私のスレッドセーフ DAO のメソッドの例です。

このメソッド (またはクラス全体) で熱心なフェッチを使用するにはどうすればよいですか?

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

iphone - iphoneタブバーどこにデータをロードしますか?

同じデータを使用する2つのタブバーアイテム(ビュー)がありますが、データを取得するための最良の解決策は何ですか?

  1. 各ViewControllerで同じデータに対して2つのフェッチ要求を行います。

  2. appDelegateでフェッチリクエストを1つ作成し、sharedApplicationを使用してappDelegateのデータにアクセスします。KVOと通知を使用して、データが変更された場合にビューに通知できます。

私が選択しなければならなかった場合、私は明らかに2に行きますが、私は自分が正しいことをしていることを確認したいと思います。

これが正しいアプローチかどうか誰かに教えてもらえますか?

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

hibernate - 休止状態のデフォルトのフェッチ戦略を変更するには?

hibernate のデフォルトのフェッチ戦略がコレクションに対して LAZY であることは知っていますが、構成ファイルを通じてシステム全体のデフォルトのフェッチ戦略を変更する方法はありますか?

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

nhibernate - NHibernate: バッチサイズが 10 アイテムに制限されていますか?

NHibernate (問題があれば SQL Server 2000) に問題があります。

500 を指定しても、NHibernate は 10 に等しいバッチサイズを使用するようです (しかし、10 未満のサイズを指定すると、たとえば 3 - 3 が使用されます)。

11 個のアイテムを読み込んでいますが、NHProf で 2 つのクエリを実行していることがわかります。

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

nhibernate - Hibernate で熱心な選択を強制する

選択を使用して積極的にコレクションを取得しようとしていますが、取得しているのは内部結合だけです。何が起こっている?

FetchMode を Eager に変更しようとしましたが、うまくいきません。個別の選択ではなく、内部結合がまだ取得されています。内部結合の原因となる FetchMode についてドキュメントには何も記載されていないため、内部結合がどこから取得されているのかさえわかりません。熱心な選択を取得することは可能ですか?

更新 OKエイリアスを作成すると内部結合が発生することがわかりました。したがって、.CreateAlias("Bars", "b", JoinType.None) を使用できますが、b.Bazes のフェッチは遅延読み込みに戻ります。うーん。

0 投票する
4 に答える
1706 参照

c# - NHibernate:子コレクションなしでオブジェクトをフェッチする方法は?

Object1 タイプのオブジェクトには、List Children1 プロパティが含まれています。子供なしでこれらのオブジェクトを取得したいと思います。

detachedCriteria.SetFetchMode ("Children1", FetchMode.Lazy) のように思えますが、明らかにそうではありません:( (new SessionScope()) を使用してデータを取得し、null を .Children1 に設定しようとしましたが、成功しませんでした(データは既に取得されています)。

どんなアイデアでも大歓迎です。

0 投票する
4 に答える
5277 参照

nhibernate - これは、複数のコレクションをロードするために ThenFetch() を使用する正しい方法ですか?

NHibernate 3 alpha 1を使用して、すべてのコレクションを熱心にロードしようとしています。これが ThenFetch() を使用する正しい方法かどうか疑問に思っていますか?

複数名のプロパティはコレクションです。他のものは単なる単一のオブジェクトです。

NHibernate フォーラムでこれを質問することを考えましたが、残念ながら、私がいる場所からは Google グループへのアクセスが禁止されています。Fabioがここにいることは知っているので、NHibernate チームの担当者がこれについて説明してくれるでしょうか? ありがとう