2016-05-27 16 views
3

私はランタイムクエリビルダーquerydslについて読んでいます。しかし、私はquerydslが最も有用な最良の事例または例を理解することができませんでした。誰かが説明できるなら、それは本当に良いでしょう。Querydslの良いユースケースは何ですか?

+1

Javaコードの中に型安全なSQL文を入れ、データベースに送信された文を完全に制御したい場合(JPQLを使用して共通テーブル式またはウィンドウ関数を使用してみてください) –

+1

私はなぜ閉鎖投票をするのですか?この質問は、querydslの利点は、ウェブサイトに記載されていません。 – aviad

+0

@aviad:** **ホームページ上にそのような権利をカバーするリンクがいくつかあります。例:http://www.hascode.com/2014/02/creating-elegant-typesafe-queries-for-jpa-mongodbmorphia-and -lucene-using-querydsl /または –

答えて

2

Querydslあなたはハードコーディングされたクエリを取り除くと、対応するタイプおよびインタフェースの階層をSQLの機能をカプセル化するライブラリを提供して取得することができます。

インタフェースを使用してクエリを記述し、呼び出しをパラメータ化するためのより良い方法です。 JUnitsを使用して、ビルド時間中に変更を自動テストすることができます。 これにより、より堅牢なクエリが作成され、コードベースのメンテナンス性が向上します。

0

あなたがダイナミックデータベースクエリを作成する必要がある場合は、Querydslを使用する必要があります。 Querydslを使用しての

長所は、以下のとおりです。

  • これは、動的照会をサポートしています。
  • 非常にきれいなAPIがあります。つまり、複雑な クエリーをQuerydslで作成するのは簡単で、クエリー生成コードは読みやすいです。
  • また、JDO、Lucene、およびMongoDBもサポートしています。

Querydslの唯一の「問題」は、Java Persistence APIを使用して動的クエリを作成する標準的な方法ではないということです。あなたがhereを見つけることができる非常に良い説明と

かなり細かいチュートリアル。

0

QueryDSLは純粋にJavaでタイプセーフなクエリで、何の文字列が含まれません。

repository.findAll(QProduct.product.owner.name.startsWith("Hello")); 

だから、いつ使うのがいいですか?

あなたはもちろんのQueryDSLによってサポートされているデータベースから照会する必要があるとき。 QueryDSLを使用できるときにSQLを使用する理由

関連する問題