我们在我们的应用程序中使用querydsl
和JPA。以下是我的存储库实现方式:
public interface TestRepository extends JpaRepository<Test, Long>, QueryDslPredicateExecutor<Test> { }
我使用谓词构建器和可分页对象调用默认的findAll方法:
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 :(得分:0)
您可以使用interceptors
public String onPrepareStatement(String sql);
如果super
包含必要的表
SELECT
并修改在FROM
之后插入索引字符串的结果SQL字符串