問題タブ [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.
c# - テーブルで Nhibernate が 2 回参加する
次のクラス構造を検討してください...
NHibernate を使用してListViewControl クラスを熱心にロードしたいと考えています。Fluent を使用したマッピングは次のとおりです。
これが私が熱心にロードしようとしている方法です
さて、私の問題は、クラスがと の両方でListViewControl
正しいレコードを取得することですが、同じレコードのエントリが複数あることです。レコードの数は、テーブルに対して行われた結合の数 (この場合は 2) と同じです。Actions
ListViewActions
ControlAction
どうすればこれを回避できますか? SetFetchMode
クエリからを削除すると、listViews
望ましくないプロキシを介してアクションが遅延して読み込まれます。
エイリアスも作成してみました...
これにより、重複するエントリが削除されましたが、熱心に読み込まれませんでした
c# - NHiberateクエリでの基本的な日付/時刻操作
基本的な日付/時刻操作でNHibernateクエリを制限しようとしています。具体的には、次のステートメント(疑似SQL)を実行します。
と:
created_on
タイプのプロパティにマップされますDateTime
。lifespan
タイプのプロパティにマップされますTimeSpan
。sysdate
現在の日付/時刻です(データベースサーバーまたはアプリケーションホストの、私は気にしません)
Criteria-APIまたはHQLを使用してそれを行うための組み込みの方法はありますか?
c# - NHibernateクエリ
NHibernateにHQLまたはCriteriaAPIを使用して次のようなクエリを生成させることは可能ですか?
数式属性を使用して内部選択を実行することはできますが、内部選択を外部選択でラップできるHQLまたはCriteriaクエリを作成する方法がわかりません。
hibernate - Hibernate Criteria API:カウントしてグループ化し、結果をマップに表示します
エンティティは、とCar
の2つの列を持つデータベーステーブルにマップされます。ID
Color
CarDao
次の方法があります。
データベーステーブルに3台の赤い車と2台の青い車がある場合、このメソッドは2つのキー(赤と青)と対応するカウント(3つまたは2つ)を持つマップを返します。
CriteriaAPIを使用してこれを実行したいと思います。メソッドはどのようになりますか?私が心配しているのは地図の部分です。
ありがとう。
nhibernate - NHibernate:結合を含む子コレクションのフィルタリング
私は次のマッピングファイルを持っています:
と:
および次の基準API:
また、サービスを遅延取得するために生成されるSQLは、次のようになります。
ここで、サーバーIDと日付は例です。問題は、フィルター用に生成されたSQLが間違ったテーブルエイリアスを使用していることです。代わりに次のようにする必要があります。
私は何が間違っているのですか?これを行うためのより良い方法はありますか?
java - JPA 2 Criteria API:equalと組み合わせるとisNullが無視されるのはなぜですか?
次のエンティティ クラスがあります (PersistentObjectSupport クラスから継承された ID):
Criteria API を使用して次のクエリを実行すると:
ログに次の SQL が出力されます。
ただし、前のコードの where() 行を次のように変更すると:
次のSQLを取得します。
つまり、isNull 基準は完全に無視されます。あたかも存在しないかのようです (where() メソッドに等しい基準のみを指定すると、同じ SQL が出力されます)。
何故ですか?それはバグですか、それとも何か不足していますか?
sql-server - nhibernate多基準CTEサブクエリ
私は現在、サブクエリ内にあるIDに基づいて結果をフィルタリングするMultiCriteriaクエリを持っています
Subqueries.PropertyIn("Id", detachedCriteria)
サブクエリは、多基準クエリで使用されるすべてのクエリで同じです。
私の現在のケースでは15回、サブクエリが繰り返されているSQLを見ると少し醜いようです。
個別のクエリの理由は、それぞれが異なる結合を持ち、1つの大規模なデカルト結合を望まないためです。
手作業でSQLを記述している場合は、繰り返されるサブクエリを共通のテーブル式に引き出します。
次に、サブクエリは15個のクエリのXYZのwhereidになります。
これは少しSQLサーバー固有であり、代替は一時テーブルまたは他のデータベース固有の機能です。
クエリを改善する方法についてのアイデアはありますか、それともサブクエリが複製されたままになっていますか?
hibernate - EntityManager.find ではエンティティが見つかりませんが、Criteria API を使用すると見つかります
find
Java EE 6 で、エンティティのプライマリ ID とともにJPA EntityManager のメソッドを使用すると null が返されるというかなり奇妙なケースに遭遇しましたが、Criteria API を使用してその ID を持つすべてのエンティティを選択すると正常に動作します。
私が使用しているコードは次のfind
とおりです。
...そして、これが Criteria API で使用しているコードです。
なぜfind
nullを返すのにCriteriaがユーザーを見つけるのか考えていますか? プログラムのまったく同じ場所で、これら 2 つの代替方法を試しました。
User エンティティの関連部分は次のとおりです。
c# - nHibernate の逆 LIKE 基準
次の 2 つのエンティティがあります。
public class Entity1 { public IList e2 { get; 設定; } }
public class Entity2 { public string Title { get; 設定; } }
私は Entity1 のリポジトリしか持っていません。次の基準で LIKE クエリを実行できることはわかっています。
criteria.CreateAlias("e2", "e1e2").Add(Restrictions.LIKE("タイトル", "針", Match.Anywhere);
しかし、次のように逆に検索する必要があります。
Restrictions.LIKE("針", "タイトル", Match.Anywhere)
どうすればいいですか?
java - JPA Criteria APIを使用して左結合に複数の条件を指定する方法は?
次の SQL クエリを変換したいと思います。
JPA基準ベースのクエリに。
自己結合を表すエンティティを作成しました。
次のコードを使用して JPA クエリを作成しました
これは、このコードを実行したときに Hibernate によって自動的に生成されるクエリです。
コード行を削除するなど、さまざまな方法を試しましたcq.where
が、生成されたクエリが元のクエリと一致しません。何か間違った設定をしましたか?