2016-10-14 5 views
1

私たちはアプリケーションでJPAとquerydslを使用しています。以下は、どのように私のリポジトリの実装です:私は述語ビルダーとページング可能なオブジェクトを使用して、デフォルトfindAllメソッドを呼び出していますquerydslを使用してインデックスを強制するSQLヒントを使用する

public interface TestRepository extends JpaRepository<Test, Long>, QueryDslPredicateExecutor<Test> { } 

:パフォーマンスの問題に対処するために

testRepository.findAll(booleanBuilder.getValue(), pageable); 

、我々は特定のテーブルにインデックスを強制する必要があります。

SELECT tab1_.id AS id_20_, tab1_.user_type AS user_type2_20_ FROM table1 tab1_

をそして、我々は我々のクエリは、このようになりたい:今派生問合せは、下記のように見えます

SELECT /*+ INDEX(tab1_ MGS_KG1) */ tab1_.id AS id_20_, tab1_.user_type AS user_type2_20_ FROM table1 tab1_

どのように私は同じことを達成することができますか? (私たちはquerydsl-jpa 3.6.7を使用しています)

ありがとう!

答えて

0

あなただけsuperを呼び出し、FROMが必要なテーブル

が含まれている場合 SELECT後にインデックスの文字列を挿入し、結果のSQL文字列を変更 interceptors

public String onPrepareStatement(String sql); 

を使用することができます

関連する問題