使用@QueryHint和spring数据存储库获取jpa sql执行计划

问题描述 投票:0回答:1

我正在使用 spring-data 进行数据库交互。我想查看存储库中写入的查询的 jpa sql 执行计划。我该怎么办。

https://vladmihalcea.com/execution-plan-oracle-hibernate-query-hints/ 讲述如何使用 GATHER_PLAN_STATISTICS 和 COMMENT 查询提示。我添加了 COMMENT 提示,但不知道如何添加其他提示。

public interface StudentRepository extends JpaRepository<Student, Long>{
   @QueryHints({
       @QueryHint(name=org.hibernate.annotation.queryHints.COMMENT, 
        value="SQL_PLAN_STUDENT")
   })
   List<Student>findByStudentIDIn(List<Long> ids);
}
oracle-database spring-data-jpa sql-execution-plan query-hints
1个回答
2
投票

@QueryHints
注释接受数组构造函数,例如
@QueryHint
项目列表。

因此,您可以通过将多个

QueryHints
添加到逗号分隔的列表中来添加它们。例如:

   @QueryHints({
            @QueryHint(name=org.hibernate.annotations.QueryHints.COMMENT, value="SQL_PLAN_STUDENT"),
            @QueryHint(name="GATHER_PLAN_STATISTICS" , value="GATHER_PLAN_STATISTICS")
    })

不幸的是,我无法访问 Oracle dbms 的运行实例,因此我无法检查给定提示的结果。

© www.soinside.com 2019 - 2024. All rights reserved.