問題タブ [icriteria]
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 ICriteriaクエリはキャッシュされますか、それともIDマップに入れられますか?
NHibernateを使用して、私は通常、Get()またはLoad()メソッドを使用して単一のレコードを照会します(プロキシが必要かどうかによって異なります)。
ここで、以下の例のように、このステートメントを2回実行すると、単体テストで実行されているクエリは1つだけになります。
ここまでは順調ですね。しかし、ICriteriaクエリを使用して同じオブジェクトを取得すると、奇妙な動作に気づきました。以下のコードを確認してください。最初のオブジェクトインスタンスを取得します。次に、プロパティの値を10(データベースの値は8)に変更し、別のインスタンスを取得して、最後に2番目のオブジェクトインスタンスの値を確認します。
新しいクエリでオブジェクトを要求したにもかかわらず、値がobj2の10であるため、何らかの理由でアサートが失敗します。面白いことに、ユニットテストの出力ウィンドウに従って実行されているまったく同じselectクエリが2つあります。私の質問:2番目のオブジェクトが第1レベルのキャッシュからフェッチされた場合、なぜ2つのクエリが実行されるのですか?
私は何かが足りないのですか、それともこれはバグですか?
よろしく、テッド
編集#1:NHibernate v2.1.2GAの使用編集#2:実行されている2つのクエリに関する説明を最後の段落に追加しました。
nhibernate - ICriteria やその他の API で一次キャッシュを使用できますか?
またはメソッドを使用すると、一次NHibernate
キャッシュの恩恵を簡単に受けることができます。しかし、 、、およびはどうでしょうか。彼らも一次キャッシュを使用していますか?Load
Get
ICriteria
HQL
Linq-to-NHibernate
QueryOver
nhibernate - 多対多のコレクションをクエリするか、基準クエリに多対多のテーブルを含める方法は?
私はNHibernateの世界にまったく慣れていないので、基準クエリを使用してこれを機能させることができないようです:多対多の関係をクエリするか、エンティティのコレクション(セット/バッグ)をクエリします。私はインターネットを検索し、私たちが持っているすべての NHibernate の本をチェックしましたが、私の「挑戦」に対する具体的な答えが見つかりません。
解決しようとしている問題の簡単な例を作成しました。本を含むテーブル、カテゴリを含むテーブル、および本ごとのカテゴリを含む多対多のテーブルがあります。ここに技術的なもののいくつかがあります:
データ構造:
C# クラス:
Hibernate マッピング:
私の質問: 指定したカテゴリのいずれかにある本を取得するような方法で (ICriteria および/または独立した基準を使用して) データベースにクエリを実行することは可能ですか (たとえば、catA または catB では、「および" 同じように)?これを C# ではなくクエリで最適化したい (タグのコレクションに基づいてオブジェクトをフィルター処理する前に、データベースからすべての本を読み取る必要があるため)。SQL を手で書くとしたら、次のようなものになります。
tableCategoriesPerBook のエンティティがないため、基準クエリを使用してこのテーブルにアクセスする方法がわかりません。そして、以下を使用して手書きの SQL 式を追加したくありません。
最後にもう 1 つ重要な要素があります。私はブラウンフィールド データベースを使用しているため、構造を変更することはできません。これは、データベースに関して作業する必要があるものです。
nhibernate - NHibernate: 基準 - 子 ID のリストを取得する
多対多の関係にあるエンティティがいくつかあります。親 ID を指定して、ICriteria を使用して子のリストを取得するにはどうすればよいですか?
これまでのコード:
ただし、生成される SQL は次のとおりです。
以下を生成するにはどうすればよいですか?
nhibernate - NHibernateでのPostgres集計関数の使用
私は次のクエリを持っています:
このクエリからの出力例:
(1)array_agg関数の周りにNHibernate基準を作成するにはどうすればよいですか?これに対応するために、PostgreSQLダイアレクトを何らかの方法で拡張する必要がありますか?
(2)統合テストデータベースとしてSQLiteを使用し、テスト/製品データベースとしてPostgreSQLを使用しています。SQLiteにはarray_agg関数はありませんが、同様のことを行うgroup_concat関数があります。テストでSQLiteを使用し、test / prodでPostgreSQLを使用できるように設定することは可能ですか?
(3)array_aggは、データを配列として返します。NHibernateを拡張してPostgreSQL配列を処理する方法を説明する素晴らしい記事をnhibernate.infoで見つけました。これを基準に含めるにはどうすればよいですか?たとえば、ロマンチックなドラマではないドラマのジャンルのタイトルを見つけたいとします。
助けてくれてありがとう!
sql - NHibernateで次のSQLクエリを作成する方法
ねえ-私は次のNHibernateICriteria(多基準?)を使用して次のように書く方法を理解するために戦っています:
(これは、最終日のテーブルで人気順に並べられた名のリストを取得するためのクエリです)
また、これはIDを除いたテーブルのほんの数列であり、NHibernateはそのオブジェクトにIDを必要とします。結果を取得できるように、IDを「偽造」する最も簡単な方法は何でしょうか。
nhibernate - NHIbernate: 外部クエリからのプロパティ値を使用するサブクエリの設定
次のサブ/基準があります。
これにより、次の SQL クエリが生成されます。
サブクエリが外部クエリのプロパティの値を使用するように設定するにはどうすればよいですか? たとえば、サブクエリを title_id 値でフィルタリングしたいと思います。プロパティ値をサブクエリに投影できるようにするNHibernateには何かありますか?
ありがとう!
nhibernate - NHIbernate:すべてのプロパティを投影するためのショートカット?
私は次の行に沿ってSQLを生成しようとしています:
QueryOverを使用する
タイトルには、私が投影したい15のプロパティがあります。上記で始めたように、各プロパティを個別に投影する必要がないように、それを行う簡単な方法はありますか?
nhibernate - ICriteria サブクエリ
エンティティを単純化する必要があります
EntityA.Name = 'SearchString' および List を照会する ICriteria クエリを作成する方法 (((EntityB.Name='Name1' And (EntityB.Value=1)) And ((EntityB.Name='Name2')そして (EntityB.Value=1)))
検索にはリストを含めることができ、次のクエリを試しました: