2016-06-29 2 views
0

Spring Data JPAではフィルタリングされた検索をBooleanBuilderで作成しました。私のプロジェクトのクエリは@QueryまたはQueryDSLのいずれかです。しかし、私はDISTINCT ONと動的フィルタに直面しているときに質問を定式化するのが苦労しています。私はこれに相当するQueryDSLを構築するのに苦労しています。booleanBuilderパラメータでqueryDSLでDISTINCT ONを使用するにはどうすればよいですか?

SELECT DISTINCT ON (name) * 
FROM foo_table 
WHERE <my filtered booleanBuilder> 
ORDER BY name, version_number DESC; 

これは可能ですか?任意の代替または助けが評価されます。ありがとう!

答えて

0

DISTINCT ONはPostgreSQLベンダー固有のSQL句です。 JPAで使用することはできません(ネイティブ・クエリーを除く)。それをSQLで直接使用してください。

+0

_WHERE_句が修正されていないため、ネイティブクエリを使用できません。回避策の提案はありますか?データベースには名前が重複していますが、WHERE句を考慮してその名前の最高バージョンを取り出したいだけです。 – jetGeekster

+0

あなたは何を意味するのか分かりません。ネイティブクエリを使用できないのはなぜですか?あなたはネイティブクエリでも動的SQLを書くことができます... –

+0

実装が容易なので、 'BooleanBuilder'でフィルタリングする方法があると思いました。しかし、複雑なクエリでは不可能だと思います。はい、私のコードでネイティブクエリを使用しています。それは見て痛いですが、今のところそれがあります。助けてくれてありがとう。 – jetGeekster

関連する問題