問題タブ [criteriaquery]
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.
jpa - Query を CriteriaQuery に変換する方法
次のようなコードを使用して、criteriaQuery から Query を作成できることを知っています。
これで、クエリを CriteriaQuery に変換する方法がわかりますか?
java - JPA Criteria query group by は id のみを使用します
これはサンプル エンティティです。
ここで、次のように Join を使用して基準クエリを作成します。
上記のコードは、次のような Sql コマンドを生成します。
上記のコードは PosgreSQL では機能しますが、Oracle では実行できません。これは、group by 句に表示されない accType.name を選択するためです。
更新:
私の質問はあなたにとって明確ではないと思います。私の質問は、.NET での PostgreSQL や Oracle の動作に関するものではありませんgroup by
。私の質問はこれです:
私はtypeJoin
ingroup by
句を使用します(これは、休止状態が AccountType のすべてのフィールドを in で使用することを期待することを意味しますgroup by
)が、なぜ休止状態が単に ID フィールドを on で使用するのgroup by
ですか? ID フィールドのみを使用するgroup by
場合は、次のステートメントを使用できます。
java - JPA: CriteriaQuery を使用して where 句でクエリの結果をカウントする
私はJPAにかなり慣れていません.CriteriaBuilder/CriteriaQuery APIです:
オブジェクトのセットの抽出を照会したい (以下に示すように、結果の要素 n から m のみを選択する)
クエリ自体はうまく機能し、期待どおりの結果が得られます。
しかし、考えられる結果の全量を数えようとすると、java.lang.IllegalArgumentException が発生します。
org.hibernate.hql.internal.ast.QuerySyntaxException: 無効なパス: 'generatedAlias1.prop1' [com.myCompany.blablub.MyClass から count(generatedAlias0) を generatedAlias0 として選択 (1=1) および ( generatedAlias1.prop1=:param0) )]」
私が間違っていることについてのヒントを教えていただければ幸いです。
私の問題がどこにあるかがわかると思います。
この動作は、結合を使用した場合にのみ表示されます。
結合なしのクエリは次のようになります。
しかし、結合を使用したい場合は、次のようになります。
カウントなしのクエリは次のようになります。
結合全体が欠落しているため、 generatedAlias1 が何であるかは明らかにわかりません。この動作を修正する方法を知っている人はいますか?
java - jpa2 CriteriaBuilder order by 「ORDER BY式は選択リストに表示する必要があります」
CriteriaBuilderを使用してクエリを作成していますが、 order by句を追加できませんでした。メッセージORDER BY Expressions must appear in select list this are my entities でエラーがスローされるためです。
私のクエリは次のようになります。
これは hibernate が生成する sql です。
ご覧のように。B select句にはありません。では、どうすればBを追加できますか?
java - JPA TypedQuery getResultList() のパフォーマンスが非常に遅い
私のコードは次のようになります:
生成された SQL (select 句で列を減らした例) は次のようになります。
同じクエリを SQL 開発者で実行すると、約 0.3 秒かかります。java.sql.Statement.executeQuery() を使用して同じクエリを実行すると、データベースからデータを取得するのに約 0.4 秒かかることに注意してください。データベースは Oracle 11g です。JDK のバージョンは 1.7.0_51 です。
Table1 の JPA エンティティは次のようになります。
このシナリオでパフォーマンスを向上させるためにどこから始めればよいかについてのヒントを教えてください。さらに情報が必要な場合はお知らせください。
hibernate - 時間単位の整数フィールドに基づいて、制限が期間より大きい Hibernate Criteria クエリを作成するにはどうすればよいですか
次のエンティティがあるとします。
だから私は、hoursMax整数フィールドの最大期間のcreateAt日付フィールドによって制限する注文の基準クエリを作成する必要があります。以下の例のように、Date インスタンス java から整数リテラル値を時間単位で引いたものを使用する例がたくさんあります。
しかし、この場合、この最大期間を表すフィールドhoursMaxを使用する必要があります???? 下 ?
注: また、hoursMax に対して追加の事前クエリを実行することは避けたいと考えています。
hibernate - データ転送オブジェクト (@Entity オブジェクトとは異なります) を設定する JPA クエリを作成するにはどうすればよいですか?
Java 6、JPA 2.1、および Hibernate 4.3.6.Final を使用しています。組織オブジェクトを見つける以下のコードがあります…
これらの組織オブジェクトは、データ集約型のオブジェクトです。組織のフィールドのサブセットのみを含むデータ転送オブジェクト OrganizationDto があります。組織オブジェクトの代わりに OrganizationDto オブジェクトを設定するように上記を構成する方法はありますか? 私が避けたいのは、結果セットを取得してから for ループを記述して、そのすべてを処理し、すべてのデータ転送オブジェクトを作成することです。クエリが何らかの形でこれらのデータ転送オブジェクトをすぐに入力できれば素晴らしいことです。