問題タブ [eager]
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.
hibernate - Hibernate のデフォルト Lob Lazy/Eager
hibernate が @Lob で注釈が付けられたフィールドを含むオブジェクトをロードするとき、このフィールドは積極的にロードされますか、それとも遅延してロードされますか?
dependency-injection - 組み込みの Grizzly Web アプリケーション コンテキストを強制的に開始する方法
組み込みの Grizzly Web サーバーを使用して、Jersey で RESTful Web サービスをホストしています。これはすべて正しく機能しています。
私の質問は、最初の着信クライアント要求を待つのではなく、サーバーの起動時に Web アプリケーション コンテキストを強制的に初期化する方法です。これは小さな問題ですが、私が解決したい問題の 1 つです。
次のように組み込みサーバーを起動します。
「TestBinder」は、必要な依存性注入を構成し、そのクラスは次のようになります。
最後に、「CatalogManager」は、アプリケーションが RESTful Web サービスを介して公開するすべての静的データをプリロードおよびキャッシュするために使用されるシングルトンです。
「CatalogManager」の本質は次のとおりです。
したがって、問題は、サーバーの起動時に依存性注入とその結果 @PostConstruct メソッドが実行されず、代わりに最初のアプリケーション要求とアプリケーションの最初のユーザーが長い遅延を取得するまで待機することです。
c# - EF Eager Loading が複数のコレクションと小数で機能しない
Entity Framework と熱心な読み込みに問題があります。小数を含む複数のコレクションを読み込みたい場合、最初の 2 つのインクルードのみが正しいデータを提供します。3 番目のインクルードは、コンマ区切りなしの数値を提供します: これが私のモデルです:
これは熱心な読み込みリクエストです。
そして、これが私の見解の結果です
データベースの Auto の価格は 23,14 で、Taxi は 79,87 です。ビューの問題ではありません。デバッガーを使用すると、バスケット オブジェクトでもその問題を確認できます。
インクルードを ArticlesA、ArticlesC、ArticlesB に変更すると、B の値は false になります。
簡単な回避策として、3 番目のコレクションを次の行にリロードします。
しかし、このソリューションは、2 回目の db 呼び出し、またはコレクションごとに 1 回の呼び出しを生成しました。これは、将来、またはより複雑なエンティティ構造で必要になります。
entity-framework - Entity Framework - 2 つの多対多リレーションシップのイーガー ロード
長くなって申し訳ありませんが、少なくとも私はすべての情報を理解して助けてくれると思いますか?
熱心な読み込みを使用してデータベースからデータを読み込みたいと考えています。
データは 5 つのテーブルに設定され、m:n 関係の 2 つのレベルが設定されます。したがって、データを含む 3 つのテーブルがあります (階層の上から下に並べられています)。
最初の 2 つは、実際には独自の ID のみで構成されています (ここでは関係のない他のデータをフックするため)。
これら 3 つのデータ テーブルの間には、並べ替えのヒントを含む 2 つの m:n テーブルがあります。
これは基本的に、OpenStreetMap データ構造の一部です。Entity Framework にこのデータベースからオブジェクトを作成させ、テーブルとまったく同じようにクラスを設定しました。m:n テーブルは実際にはクラスとして存在します。(EFでは、明示的な中間クラスがなくてもオブジェクトのm:n関係を構築できることを理解しています-この方法でオブジェクトモデルを変更しようとする必要がありますか?)
やりたいこと:私のエントリ ポイントは、関係の 1 つの項目です。
最初に中間の m:n 関係を熱心にロードし、次にループでそれを反復処理し、最も低い関係を熱心にロードするのが最善だと思います。私は次の方法でそれをやろうとします
これにより、リレーションとすべての 1:n 情報が、データベースへの 1 回のトリップでロードされます。しかし、中間データテーブルの「方法」ではなく、1:n テーブルのみをロードすることに気付きました。
次のように行を変更しても、これは変わりません。
ここでミドルレベルをロードできないようですね。
まったく機能しないのは、ノードレベルのデータを熱心にロードすることです。私は次のことを試しました:
これは機能し、中間レベルのウェイと way_node のすべての 1:n 情報を反復ごとに 1 つのステートメントで積極的にロードしますが、ノードからの情報 (緯度/経度)はロードしません。これらの値のいずれかにアクセスすると、データベースへの別のトリップをトリガーして、1 つのノード オブジェクトをロードします。
1 リレーションをロードしたいので、この最後のトリップは致命的です -> 300 ウェイ、各ウェイ -> 2000 ノード。結局、私はサーバーに 1 + 300 + 300*2000 を打っています... 改善の余地があると思います。
しかし、どのように?有効な構文で記述されたこの最後のステートメントと熱心な読み込みを取得できません。興味がない。1 つのリレーションから始めて、1 回のトリップでオブジェクト グラフ全体をロードする方法はありますか?
c# - Entity Framework: TPT のサブクラス タイプのプロパティのイーガー ロード
タイプごとにテーブルを使用します私はこのようなものを持っています
タイプ E のオブジェクトを取得するときに、クラス タイプ C のプロパティ D のイーガー ロードを実行したい。
この場合、熱心な読み込みを行うことは可能ですか?
アップデート
@マーティはそれは不可能だと言いました。遅延読み込みしか使えないように思えますよね?しかし、オブジェクトを強制的にロードしたいのは、DbContext が破棄された後でオブジェクトを使用するからです。では、どうすればこれを行うことができますか?現在、遅延読み込みのために各要素にアクセスできる for-loop を使用しています。