問題タブ [querydsl]
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 - Hibernate:HQL/QueryDSLの単一の結合ステートメントですべての子を初期化しますか?
現在、データベースクエリにQueryDSLを使用していますが、質問はより一般的に休止状態に関連していると思います..
私は疑問に思っています: HQL は、クエリを実行するエンティティを休止状態のコンテキスト/キャッシュに配置して、そこからアクセスできるようにしますか? エンティティに対してビッグを実行し、leftjoin
すべての子関係を明示的に収集する場合、結果をエンティティ オブジェクトにマッピングするときにその情報を使用するように hibernate に指示できれば、遅延読み込みを節約できるはずだと考えています。方法がわかりません..
例:
A には B があり、B には C があります。ここで、特定の A に対してクエリを作成し、fetch all
それを B および C と結合すると (クエリ DSL 実装):
私は言う素敵なSQL文を取得します
したがって、休止状態が初期化するのに十分な結果が得られるはずです
代わりにクエリを実行します
1回の結合ですべての子を持つエンティティを初期化することで、これらの遅延読み込みを減らすことはまったく可能ですか?
結合を使用してすべてのデータをロードすると、休止状態はそれらをキャッシュに保持し、それらの遅延ロードのためにそのキャッシュにアクセスしますか、それともデータベースをポーリングしますか? 私はそれについて発言権を持っていますか、それとも完全に私の手に負えませんか?
皆さんありがとう!
java - Querydsl と ConstructorExpression.create() を使用した DTO:s の構築
querydsl と DTO:s に関する問題があります
私はいくつかのクエリオブジェクトを持っています:
それらから、CompletedCreditsSummary と呼ばれる DTO クラス (エンティティではない) のインスタンスをクエリして一覧表示しようとします。CompletedCreditsSummary には、Long、Long、Float を取るコンストラクタがあります。
私はこれを行うことができます (group by を使用せず、CompletedCreditsSummary を使用して、個人およびプログラム オブジェクトを作成できるようにするために必要なすべてのパラメーターを要求します。この場合は、person.id および program.id に簡略化されます)。
これは機能します。しかし、これをクエリに追加したい場合:
そして、examCode.credits.sum() で CompletedCreditssummary を作成します。
それ以外の
java.lang.IllegalArgumentException: 引数の型が一致しません。
ここでの質問は、examCode.credits (NumberPath) と Examcode.credits.sum() (NumberExpression) の違いと、問題を解決するために何ができるかです。
試行錯誤しながらquerydslを学んでいるので、おそらく見落としている基本的なことがあります。本当に助けていただければ幸いです!
よろしくラスムス
編集:できれば、このようなものが機能することを望みます(group byおよびCompletedCreditsSummaryコンストラクターを使用して、Person、Program、Floatを使用します):
編集: CompletedCreditsSummary コンストラクターが受け入れられるようにすることで動作するようになりました: Long、Long、Number。つまり、Float を Number に変更しました。これは理想的な解決策ではありませんが、少なくとも機能します。
jpa-2.0 - JPA2基準のFrom節のサブクエリ
アカウントに複数のユーザーを含めることができるデータモデルがあります。
各アカウントのユーザー数を表示する次のクエリを実行したいと思います。
私はこの特定のクエリを次のように書き直すことができることを知っています:
ただし、複数のグループを必要とするレポートに対して、より複雑なクエリを作成する予定です。複数のgroupbyへの正しいアプローチについてここで読みました。
JPA2 Criteria APIを使用してクエリを作成するにはどうすればよいですか?
spring - Spring JPAでページングされたQueryDSLクエリを実行するにはどうすればよいですか?
QueryDSLは、またはOrderSpecifier
を呼び出すことにより、任意のフィールドで簡単に取得できるインターフェースとインスタンスを定義します。Spring Data JPAのインターフェースには、パラメーターとしてsをとるメソッドもあります。asc()
desc()
QueryDslPredicateExecutor
findAll()
OrderSpecifier
org.springframework.data.domain.PageRequest
ただし、QueryDSLについては何も知らず、クエリの並べ替え順序を定義する独自の方法がありますorg.springframework.data.domain.Sort
。型安全性などではないことを除けば、sにorg.springframework.data.domain.Sort.Order
よく似た多数のsを含めることができます。OrderSpecifier
それで、ソートを使用するページクエリを作成したい場合、それを定義するためにQueryDSLを使用する方法は本当にありませんか?
java - QueryDSL の単純なクエリはオブジェクトにキャストされません
MySql の World データベースに対して QueryDSL をテストしています。データをリストとして取得できますが、リストとして返すことはできません。私はSQL経由でクエリを実行していますが、他には何もありません。これは私が持っているものです。
次のエラーが表示されます。
java.lang.IllegalArgumentException: RelationalPath based projection can only be used with generated Bean types
maven-plugin - 「mvn apt:process」の実行時に「1 つまたは複数のプロセッサを指定する必要があります」
Spring Roo プロジェクトで QueryDSL を動作させようとしています。
これが私のプラグイン設定です:
次のコマンドを実行するとmvn apt:process
、次のエラーが表示されます。
もちろん、ソースを生成しない mvn install はすでに試しました。
どんなアドバイスでも大歓迎です。
編集: maven-apt-plugin からの唯一の出力はこれです:
java - true と評価される QueryDSL BooleanExpression を返す
CustomerQueryInfo
次のプロパティを持つBean があるとします。
- 文字列 firstName
- 文字列姓
- StatusEnum ステータス
顧客のリストを返すこのタイプのオブジェクトを使用して、「 QueryDSL 」検索を実行したいと考えていますList<Customer>
。
のフィールドの 1 つが である場合CustomerQueryInfo
、null
検索で使用したくありません。したがって、 3 つのフィールドCustomerQueryInfo
すべてが に設定されたオブジェクトは、すべての customersを返します。null
このような検索を QueryDSL で実行するためのベスト プラクティスを探しています。
このようなものはOKです:
それから:
BooleanExpression
true と評価されるa を返すにはどうすればよいですか?- 上記のアプローチが適切でない場合、推奨されるベスト プラクティスは何ですか?
java - 休止状態の検索でのワイルドカードクエリ
Hibernate検索を使用して、エンティティで注釈が付けられたluceneインデックスを検索しています。keyStringを含む文字列のリストを返す必要があります。基本的には部分文字列操作です。これは私のコードです
この操作はすべての文字列を取得してサブ文字列操作を実行しますか、それともluceneでWildcardQueryを呼び出しますか。
誰かが休止状態の検索にWildCardQueryを使用するのを手伝ってくれたら感謝します
java - Querydslupdate句populateはBeanのnull値のプロパティをスキップします
Beanのnull値プロパティでpopulate呼び出しを使用すると、SQLUpdateClauseに問題があります。対応するフィールドをNULLに設定する代わりに、生成された更新SQLからnull値のプロパティをスキップするだけです。
例:
SQLを生成します:
希望する代わりに:
ここで何か助けはありますか?... お願いします
java - Multiple columns in QueryDSL
I'm trying to get a list of multiple columns from my table using QueryDSL, and automatically fill my DB object, like this example in an older manual:
The problem is that it looks like the EConstructor class was removed in version 2.2.0, and all the examples I find now are like this:
Which forces me to manually cast all the objects into my CatDTO class.
Is there any alternative to this? Any EConstructor alternative?