問題タブ [criteria]
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.
c# - ISet を使用した NHibernate ICriteria サブクエリプロパティ: これは正しいですか?
1 対多の関係で別のクラス B に関連するクラス A が与えられた場合、どのように NHibernate クエリを作成して (基準 API を使用し、HQL なしで)、関連するオブジェクト B を「持たない」すべてのオブジェクト A を見つけることができますか? ? 詳細は次のとおりですが、最初に質問をしたいと思いました。
SampleとSampleDiagnosisの 2 つのモデル クラスがあります。サンプルには、ISet<SampleDiagnosis> であるDiagnosesプロパティがあります。SampleDiagnosis には、サンプルにリンクするOwnerプロパティがあります。これは単純な 1 対多の関係です。
サンプル NHibernate マッピング ファイルの関連セクションは次のようになります。
SampleDiagnosis マッピング ファイルの関連部分は次のようになります。
診断リストに項目がないサンプルに一致する NHibernate ICriteria クエリを作成しようとしています。テストクエリを作成するために使用しているコードは次のとおりです。
私の考えでは、このために生成された SQL は次のようになります。
しかし、実際に GetExecutableCriteria() を実行して結果を List() すると、コードがクラッシュします。難しい。例外はスローされませんが、たまたまコードを実行していたもの (NUnit であれ w3p.exe であれ) は恐ろしい死を迎えます。複数のマシンで試しましたが、すべて同じ結果でした。サブクエリが NHibernate のセットでどのように機能するかについて、重要な何かが欠けていると感じています。
hibernate - Hibernateで制限と基準を使用して「notin」を達成するにはどうすればよいですか?
カテゴリのリストがあります。2,3行を除いたカテゴリのリストが必要です。CriteriaとRestrictionを使用してHibernateを介して達成できますか?
nhibernate - 子オブジェクトのプロパティで (n) hibernate を並べ替えるにはどうすればよいですか?
子オブジェクトを持つドメイン モデルのオブジェクトがあります。条件クエリを使用して、子のプロパティに基づいて注文するにはどうすればよいですか?
例えば:
このシナリオを有効にするには、何をする必要がありますか? 私はNHibernate 2.1を使用しています。ありがとう!
nhibernate - Nhibernate クエリの問題
次のマッピング ファイルを検討してください。TemporaryAccessOpenCommand と TemporaryAccessCloseCommand の両方が基本クラス Command から継承されます。
CloseAccessCommand が成功していないすべての OpenAccessCommand を取得するための nhibernate クエリは何でしょうか?
私はこれを試しました:
ただし、空のリストを返す必要があるときに、2 つの CloseCommand (失敗したものと成功したもの) を持つ OpenAccessCommand を返します。
あなたの助けに感謝します(そして私の下手な英語を許してください)
nhibernate - Nhibernate タグ クラウド クエリ
これまでのところ、私にとって2週間の戦いでしたが、運がありませんでした。:(
まず私の目的を述べさせてください。「foo」と「bar」のタグが付いたエンティティを検索できるようにします。それは大変なことだと思いませんか?
これは HQL で簡単に実行できることはわかっていますが、これはオプションではない動的に構築された検索クエリであるためです。最初のいくつかのコード:
Tag クラスはさまざまな型で使用されるため、多対多としてマップされます。したがって、双方向参照はありません。
そこで、抽象フィルター クラスを使用して分離基準を構築します。簡単にするために、タグ "Apples"(TagId1) && "Oranges"(TagId3) を持つ Foos を検索していると仮定しましょう。これは次のようになります。
SQL:
基準
基本的に、これは指定されたすべてのタグを持つ Foo Id のリストを投影する DC を作成しています。
これは NH 2.0.1 でコンパイルされましたが、クラス Foo でプロパティ "RowCount" が見つからないと不平を言ったため、機能しませんでした。
この投稿を読んだ後、これが 2.1.0 で修正されることを期待したので、アップグレードしました。非常に残念なことに、ProjectionCriteria が DetachedCriteria から削除されており、DetachedCriteria なしで動的クエリの構築を機能させる方法がわかりません。
そこで、悪名高い Having 句を使用せずに同じクエリを作成する方法を考えてみました。タグテーブルで複数の結合を使用して実行できます。やったー、それはとても簡単だと思いました。ということで、こんな感じに書き直しました。
仕事をする以下のSQLを作成しようとする無駄な試みで(私はそれが完全に正しくないことに気づきました)。
残念ながら、この試みで最初のハードルに落ち、「重複した関連付けパス」という例外を受け取りました。この辺りを読むと、古くて今でも非常に現実的なバグ/制限のようです。
私は何が欠けていますか?
私は、NHibernates の名前を呪い始めています。これは、あなたが非常に単純で一般的なクエリだと思うものを、非常に難しいものにしています。以前にこれを行ったことがある人を助けてください。NHibernates の制限をどのように回避しましたか。
評判と報奨金を忘れてください。誰かが私にこれをしっかりしてくれたら、あなたの問題のために6パックを送ります.
nhibernate - nHibernateでNOLOCKを追加するにはどうすればよいですか?
nhibernateを使用するときにNOLOCKをどのように追加しますか?(基準クエリ)
hibernate - テーブルへの関連付けに関する Hibernate Criteria の包含
次のような Hibernate マッピングがあります。
これを考えると、MyEntity.scalarSet (Set) の値が別のコレクションにあるようにクエリするにはどうすればよいですか。
何かのようなもの:
[編集] Restriction.sqlRestriction(..) も試しました。私が使用したSQLクエリは次のようなものです:
'{expanding?}' はカンマ区切りの疑問符に置き換えられます (targetList.size() によって異なります)。
しかし、私はちょうど得ています
原因: org.hibernate.MappingException: コレクションは関連付けではありませんでした: MyEntity.scalarSet
hibernate - Grailsの条件で複数のフィールドを並べ替える
「raceDate」と「raceNo」ascで並べ替えるのが好きな次のクエリがあります。1つのフィールドで並べ替える方法はわかりますが、2つのフィールドで並べ替える方法はわかりません。
nhibernate - 基準を使用してNHibernateオブジェクトを削除するにはどうすればよいですか?
これは簡単な質問に違いありません。基準が与えられた場合、基準を満たすエンティティをどのように削除しますか?
根拠:
HQL および NH 基準は NHibernate 固有の構造であり、サーバー側の DAL 実装の詳細です。それらがクライアント側に「漏れる」ことは望ましくありません。したがって、クライアント側は、サーバーが処理する LINQ 式を提供します。これまで、select リクエストと LINQ to NHibernate が問題なく処理していたリクエストがありました。
ただし、一括削除操作を実装する必要があります。いつものように、クライアント側は LINQ 式を提供し、サーバーは式を満たすエンティティを削除します。残念ながら、LINQ to NHibernate はここでは役に立ちません。できることは、指定された LINQ 式を NHibernate 基準に変換することだけです。
とにかく、これは話です。クライアント側は NHibernate をまったく認識していないことを強調したいと思います。
PS
NH2.1を使用しています