問題タブ [criteria-api]
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 Criteria API-コレクションサイズで注文する方法は?
UserクラスとUserGroupクラスがあると仮定します。オプションの1対多のグループからユーザーへの関連付けがあり、関連付けは両側からマップされます(HashSetである「members」と呼ばれるプロパティを介したUserGroup側、プロパティ「group」を介したユーザー側)。
Criteria APIを使用して、グループメンバーの数でソートされたすべてのグループをクエリするにはどうすればよいですか?
(編集)SQLでページネーションが行われていることを聞いたときに指摘しておくべきだったので、可能であればSQLでも順序付けを行う必要があります。
c# - NHibernate Criteria APIを使用して、カウントとともに特定のデータセットを選択します
NHibernateで永続化するために次のドメインを設定しています。
ルートアグリゲートとしてPaperConfigurationを使用しています。
特定のTierおよびAcademicYearConfigurationのすべてのPaperConfigurationオブジェクトを選択したいと思います。これは、次の例のように非常にうまく機能します。
(おそらく、これを行うためのより良い方法があります)。
ただし、各PaperConfigurationに存在するReferenceMaterialの数も知る必要があり、同じ呼び出しで取得したいと思います。HQLを避けてください-私はすでにそれのためのHQLソリューションを持っています。
これが予測の目的であり、この質問はアイデアを示唆していることを私は知っていますが、それを機能させることはできません。
IList<ReferenceMaterial> ReferenceMaterials
ReferenceMaterialCountの代わりに次のような考え方をしているPaperConfigurationViewがあります。
残念ながら、これは機能しません。私は何が間違っているのですか?
次の簡略化されたクエリ:
このかなり予想外のSQLを作成します。
上記のクエリはADO.NETエラーで失敗します。これは、group byまたはcount(this_.Id)ではなくcount(referencem1_.Id)が欠落しているため、明らかに正しいSQLではないためです。
NHibernateマッピング:
nhibernate - in句で部分文字列の射影を使用するNHibernate基準
Oracle で、列の部分文字列部分を値のリストと一致させる必要があるシナリオがありました。必要な列に部分文字列を適用するために sqlfunction プロジェクションを使用していましたが、そのプロジェクションを句内制限の一部として追加しました。以下は、私がそのために書いた単純化された基準です。
これで私が抱えていた問題は、生成された SQL が間違っていたことです。ステートメントに登録されたパラメーターの数が、ステートメントが実際に使用する数よりも多く、使用されていないにもかかわらず、一部のパラメーターが繰り返されていました。これにより、ステートメントがメッセージ「ORA-01036: 不正な変数名/番号」で失敗します。生成されたクエリ
p2 と p3 が再度生成され、p0 と p1 の複製であり、クエリ全体が失敗するためです。
新しいプロパティを式でマッピングすることでこれを一時的に解決できましたが、部分文字列を評価する必要がない場合でも式が常に実行されるため、これは正しいアプローチではないと思います。
In 句の組み合わせで使用した場合に射影が正常に機能するかどうかについての提案は、In ではなく Equal Restriction を使用すると、同じ射影が正常に機能します。
java - Hibernate Criteria API を使用してプロジェクションを使用して多対 1 の関係をクエリする
次のシナリオで Criteria API を使用しようとしています。
- 2 つのテーブル
Schedule
とRoute
(クラスとマッピングを含む) があります。 Route
は と多対 1 の関係にありSchedule
ます。Route
には整数プロパティがありますsequence
。
次に、関連する Route オブジェクトが次の条件を満たすすべての Schedule オブジェクトを取得する必要があります。
次の基準コードを試しました:
しかし、次の sql が生成されます。
次のエラーがスローされます。
何か提案があれば、私を助けてください。
nhibernate - NHibernate: Criteria API を使用して結合の一部であるクラスを除外する方法
私はまだ Hibernate を使い始めたばかりで、継承した Web サイトで Hibernate を使用しようとしています。残念ながら、これは db スキーマが必ずしも意味をなさない場合があることを意味します。
そうは言っても、Criteria API を使用して次の HQL クエリを作成しようとしています。
上記の HQL ステートメントは、私が望んでいる TableB のみを選択して返す SQL を生成します。ただし、以下に示す Critera API ステートメントを使用すると、生成された SQL ステートメントは TableB と TableA のフィールドを選択します。
完璧な世界では、db スキーマを更新してより意味のあるものにすることができますが、残念ながらできません。これに関する任意の助けをいただければ幸いです。
java - elements() を含む HQL クエリを Criteria API に変換する
次の HQL クエリを Criteria API に変換する際に問題が発生しました。皆さんから助けを得ることができるかどうか疑問に思っていました。
つまり、ID が ? に等しい Bar のインスタンスで、Bar が参照するすべての Foo を取得したいと考えています。
編集:エンティティ間に双方向の関係がないことに注意してください。そのため、Foo はどのバーがそれを参照しているかわかりません。次に、Bar から Foo への参照は ManyToMany 型です。
nhibernate - NHibernateプロジェクション:プロジェクションでCriteriaAPIを使用して型付き型を取得する方法
List <ProductRow>タイプとして結果を取得するにはどうすればよいですか?
Projection.Cast関数があるようですが、その使用方法に関するドキュメントはありません。
nhibernate - 子コレクションの setfirstresult と setmaxresult
私は持っており、エンティティはそれを呼び出すことができEntity
、Child
コレクションがありChildren
ます。ユーザーがEntity
情報を持っている画面とコレクションのリストがありChildren
ますが、そのコレクションは非常に大きくなる可能性があるため、ページングの使用を考えていました:最初の20要素を取得し、ユーザーが次の場合にのみ遅延ロードします次のボタンを明示的に押します。
だから私はエンティティリポジトリでこの署名を持つ関数を作成しました:
Aggregate ルート エンティティではなく、子コレクションで setfirstresult と setmaxresult を使用する必要があります。しかし、これら 2 つの構成を使用すると、常に HQL/Criteria クエリのエンティティ タイプを参照します。
他の代替手段は、タイプの HQL/Criteria クエリを作成しChild
、最大値と最初の結果を設定してから、Entity Children コレクションにあるものを (サブクエリを使用して) フィルター処理することです。しかし、私はこのフィルターを行うことができませんでした。双方向の関連付け (親エンティティを参照する子) である場合は、より簡単になります。
助言がありますか?
どれでも
sql - 結合を必要とせずにのみ、結合テーブルから列を選択します
これらのテーブルを考えると:
HQL / criteria APIを使用して、次のSQLを生成するクエリを作成することは可能ですか?
私はこれらのアプローチの両方を試しました:
ただし、どちらのアプローチも結合の生成を要求し(または、基準を使用する際に結合が存在しないために失敗し)、次のようなSQLが生成されます。
結合を必要とせずに、結合テーブルからのみ列を選択するクエリをNHibernateに生成させる方法はありますか?
java - Criteria API を使用した動的 JPA 2.0 クエリ
JPA 2.0 の CriteriaBuilder を使用して動的クエリを作成するのに少し手こずっています。
私が推測する非常に一般的なユースケースがあります。ユーザーは、任意の量の検索パラメーター X を指定します。
CriteriaBuilder の Method または は動的ではありません。
Predicate or(Predicate... 制限)
アイデア?サンプル?