問題タブ [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.
java - 抽象クラスのサブクラス プロパティでフィルタリングする JPA CriteriaQuery を取得する方法
ビルダー .treat() メソッドを使用してAbstractAddress
エンティティをそのサブクラスにキャストする JPA クエリを取得できません。AddressStd
バックグラウンド
JPA 2.1 (Hibernate 5.0.2 FINAL を使用) を使用しCustomer
て、0:n の連絡先があり、それぞれContact
にAbstractAddress
サブタイプAddressStd
またはAddressPOB
(PO ボックス) があるレガシーデータベースをマップしました。Contact には追加のプロパティがありますが、簡単にするために以下には示していません。
ドメイン モデル
JPA クエリ
ビルド クエリはAbstractAddress
プロパティ ( ) を取得するために機能しますが、次のようなステートメントとして、( ) と( )city, postcode, country, language, isActive
のサブクラス プロパティをそれぞれ取得することはできません。AddressStd
houseNo, street
AddressPOB
poBoxNo
実行時例外をスローします
以前にビルダー .treat() メソッドを使用して型をキャストしましたが、正常に動作します。しかし、この場合、 .treat() はアドレスをAddressStd.class
?にキャストできません。JPAの第一人者であるあなたの中に、その理由を知っている人はいますか? どうもありがとう、DaveT.
こちらの CriteriaQuery ビルダー コードを参照してください
java - JPA CriteriaQuery を使用して結合または関係を実装する方法
以下のように、データベースに 3 つのテーブルがあります。
そして、私のSQLクエリは次のとおりです。
JPA(Hibernate) CriteriaQuery を使用してこれを実装するにはどうすればよいですか。
java - CriteriaQuery を使用して "select count(*) ..." を生成する方法
「 ExampleEntity」のカウントを取得するために、次のコードを書きました。
生成された SQL: Hibernate: select count( exampleen0_.id ) as col_0_0_ from EXAMPLEENTITY exampleen0_
ただし、パフォーマンス上の理由から (Oracle 11g データベースを使用)、次の SQL を生成する必要があります。
目的のSQL:サンプルのexampleen0_からcol_0_0_としてcount(*)を選択します
JPQL クエリを作成するのは非常に簡単ですが、フィルター用に既存の多くのコードを書き直す必要があります。
CriteriaQuery を使用して "count(exampleen0_.id)" の代わりに "count(*)" を生成するにはどうすればよいですか?
java - JPA Criteria クエリの二重結合とハイバネート エラー with-clause
この回答https://stackoverflow.com/a/2111420/3989524に基づいて、最初に動作する SQL を作成しました。
次に、(最終的に) 同等の HQL を生成するように見える基準クエリですが、Hibernate はエラーをスローします。
org.hibernate.hql.internal.ast.QuerySyntaxException: with-clause が 2 つの異なる from-clause 要素を参照しました
エラー メッセージの HQL:
条件クエリ:
とにかく欲しいものを手に入れる方法はありますか、それとも内部の休止状態のバグを回避する方法は他にありません。
java - Hibernate Criteria を JPA CriteriaQuery に変換する
すべてのものを1対1で書き直すことなく、Hibernate CriteriaコードをJPA Criteria Queryコードに「簡単に」変換するソリューションを探しています。Hibernate Criteria を SQL クエリに変換し、それを JPA Criteria Query で再利用することはできますか? 他のソリューションは大歓迎です。
具体的に言うと、Hibernate Criteria オブジェクトを返す複雑なメソッドがあります。JPA のみを使用する予定ですが、この方法は敏感すぎて、今の時間ではリファクタリングできません。したがって、この Criteria を JPA Criteria Query で再利用できるように「変換」する効率的な方法を見つけるとよいでしょう。