問題タブ [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 - ICompositeUserType の NHibernate ICriteria クエリで .NET 型を使用して比較するにはどうすればよいですか?
ここCHAR
で、POCO でレガシーデータベースの日付と時刻のフィールドを 1 つの .NETDateTime
プロパティに
結合する方法について、StackOverflow の質問に回答しました( Berrylに感謝します!)。今、私はカスタム ICritera クエリを取得して、まさにそのプロパティに対して機能させようとしていますが、役に立ちません。ここに私のクエリがあります:DateTime
そして、これが生成しているクエリです:
CHAR
DBではsの代わりにsを使用してより大きな比較を行っているため、クエリは実際に私が望むもの(過去2週間のすべての行)を実際に提供しないことを除いて、まさに私が期待するものですDATE
。CreateSQLQuery() を実行せずに、クエリでCHAR
値をに変換するクエリを取得する方法がわかりません。これは避けたいと思います。誰でもこれを行う方法を知っていますか?DATE
更新:これを達成するために or 式を使用しようと検討してきましたがProjections.SqlFunction()
、これまでのところ役に立ちません。これが私が使用しているコードですSqlFunction()
が、NHibernate.QueryException : property does not map to a single column: FileCreationDateTime
エラーが発生します:
私はここで何か間違ったことをしていると確信しています.NETプロパティを2つのOracle SQL列に分割FileCreationDateTime
するカスタムを使用しているため、まだ好きではありません(詳細については、このStackOverflowの質問を参照してください)。ICompositeUserType
DateTime
CHAR
sql - 複数のテーブルにわたるNHibernateクエリ
私はNHibernateを使用しており、エンティティのすべての名前を検索して結果を一覧表示するクエリの記述方法を理解しようとしています。簡単な例として、次のオブジェクトがあります。
最終的には、たとえば、「ted」を含む名前のすべてのペットの飼い主、または「ted」を含む名前のペットを返すクエリを作成したいと思います。
実行したいSQLの例を次に示します。
私がこのような基準を使用してそれを行うとき:
次のクエリが生成されます。
.CreateCriteria( "Dog")および.CreateCriteria( "Cat")がANDではなくORを生成するように、クエリを調整するにはどうすればよいですか?
ご協力いただきありがとうございます。
linq - LINQ または HQL から ICriteria/ICriterion を作成することは可能ですか?
抽象フィルター オブジェクトから NHibernate が理解できるフィルターを作成できるメソッドを作成しています (フィルターとは、たとえば ICriteria オブジェクトのセットを意味します)。
それから私は次のようなことをしたい
エンティティをフィルタリングします。問題は、式を使用することです。メソッド(Expression.Orなど)は非常に面倒です(メソッドが生成され、何らかの形で式に結合する必要がある複数の or ステートメントがあります)。Expression.Or() の使用を避け、LINQ または HQL を使用して ICrietrion / ICriteria を作成する方法はありますか?
.net - ICriteriaを使用して、最小/最大集計関数から特定の値を除外します
私はこのようなスケジュール(航海)テーブルを持っています:
'01/01/1753'
設計上、ユーザーがキャプチャ画面のフィールドに入力しなかった場合、および提供されない最初の到着と最後の出発については、デフォルト値として保存します。NhibernateとCriteriaを使用していますが、テーブル内の各航海の最初の出発と最後の到着を知りたい場合は、このデータをクエリするための最良の方法は何でしょうか。
私の最初の考えはグループビー(ID)で、次に到着と出発で最小と最大を実行しましたが、 `'01 /01/1753'VALUEは混乱しています。
したがって、最小関数の比較でこの値をスキップする方法はありますか(データの行全体を失うことなく)、または要素の正しい順序を常に示すOrderIndexを利用して、これを行うためのより良い方法があります。 ASCが1番目を取得し、次にDESCを注文し、1番目を再度取得しますが、基準構文を使用してそれを行う方法がよくわかりません。
c# - どちらがパフォーマンスが優れていますか?
NHibernateを使用して、2つのアプローチで同じクエリを記述します。
1-HQL
以下のように使用する
2-以下を使用ICriteria
してSetProjections
さて、私の質問は、どちらがより良いパフォーマンスを持っているかということです。なぜ?
nhibernate - Hibernate基準の質問
無制限の数の名前を持つことができる人物オブジェクトがあります。したがって、名は別のオブジェクトです。
すなわち
人 --- 名前
--- 名前
--- 名前
私がやりたいのは、特定の名前を持つ人を取得する nhiberate クエリを作成することです。
したがって、1 つのクエリでアリソン、ジェーン、フィリッパという名前の人を検索し、次のクエリでアリソン、ジェーンという名前の人を検索することができます。
検索対象のすべての名前を持つ人のみを返したいです。これまでのところ、私は持っています
しかし、これは、すべての名前ではなく、検索している名前のいずれかを持つすべての人を返しています。
誰でもこれで私を助けることができますか? ありがとう!
nhibernate - 逆 Expression.Like 基準
NHibernate 基準を使用して後方のようなステートメントを作成するにはどうすればよいですか?
サブ質問:
SQLCriterion 式で抽象ルート エイリアスにアクセスできますか?
これは、SQLCriterion 式を使用してある程度達成できます。
ただし、クラス継承の場合{alias}
、列の誤ったエイリアスに置き換えられます。
例 (これらのクラスは別のテーブルに格納されます):
Child
ルート タイプとして実行された上記のクエリは、テーブルではなくテーブル{alias}
へのエイリアスに置き換えられます。これにより、無効な列の例外が発生します。Child
Parent
プロパティがルート タイプ テーブルではなく親テーブルに存在する場合、上記のような like ステートメントを実行する必要があります。
nhibernate - NHibernate基準-プロパティの組み合わせでフィルタリングする方法
2つのプロパティの組み合わせを使用して、結果のリストをフィルタリングする必要がありました。単純なSQLステートメントは次のようになります。
私が最終的に使用したNHibernateのICriteriaは次のとおりです。
それは完璧に機能しますが、NHibernateのCriteria APIについてまだ学んでいるので、それが理想的なソリューションであるかどうかはわかりません。推奨される代替案は何ですか?
- それ以外
Expression.Sql
に同じ操作を実行するものはありますか?試しExpression.Like
ましたが、名前と名前を組み合わせる方法がわかりませんでした。 - FullNameプロパティをマッピングクラスの式"FirstName+'' + LastName"にマップする必要がありますか?
- ドメインオブジェクトに読み取り専用のFullNameプロパティを作成してから、それを列にマップする必要がありますか?
nhibernate - 子コレクションエンティティをアソシエーションに参加させながら、子コレクションを熱心にフェッチする方法
次の架空のレイアウトを想定
名前がXのディーラーを取得し、Carsコレクションも取得するというクエリを作成しますが、そうする場合はメーカーに対して結合を使用します。これにはICriteriaの使用が必要になると思います。こんなことを考えています。
しかし、結果のクエリは、私が期待していたようには見えません。DetachedCriteriaがどこかで必要になるかもしれないと思い始めていますが、よくわかりません。
考え?
c# - HQL / ICriteriaへのページングのためのNHibernate SQLquery
row_number() に基づいて X 行を並べ替えて返すクエリを作成しています。MSSQL で NHibernate を使用しており、CreateSQLQuery を使用してページングを機能させようとしています。次のクエリがあります。
プレーンSQLの代わりにHQLまたはICriteria(さらに良い)を使用してこれを機能させる方法を知っている人はいますか? この理由は、SQLite と MS SQL Server 2005 の両方と互換性のあるクエリが必要で、.SetMaxResult() または .SetFirstResult() を使用できるようにするためです。
前もって感謝します!