spring.jpa.properties.javax.persistence.query.timeout不适用于PostgreSQL

spring.jpa.properties.javax.persistence.query.timeout不适用于PostgreSQL,spring,postgresql,hibernate,jpa,spring-data-jpa,Spring,Postgresql,Hibernate,Jpa,Spring Data Jpa,我希望有一个选项将所有Spring jpa查询限制在某个时间限制内。如果查询时间超过指定的限制,则应取消查询。据我所见,这可以通过使用javax.persistence.query.timeout来实现,因为我在Spring上下文中: spring: jpa: properties: javax.persistence.query.timeout: 10000 这应该将从spring存储库执行的所有查询限制在30秒之内,但它不起作用。此存储库方法需要20秒: @Que

我希望有一个选项将所有Spring jpa查询限制在某个时间限制内。如果查询时间超过指定的限制,则应取消查询。据我所见,这可以通过使用
javax.persistence.query.timeout来实现,因为我在Spring上下文中:

spring: 
  jpa:
    properties:
      javax.persistence.query.timeout: 10000
这应该将从spring存储库执行的所有查询限制在30秒之内,但它不起作用。此存储库方法需要20秒:

@Query(value = "select count(*) from pg_sleep(20)", nativeQuery = true)
int slowQuery();
我用Postgresql 9.6.11和Postgresql 10.5进行了尝试


这些Postgres版本有什么问题吗?有没有其他方法可以实现查询执行超时?

下面的代码应该是一个不错的选择

YAML文件:

spring:
    jpa:
        properties:
            javax:
                persistence:
                    query:
                        timeout: 10000

下面的代码应该是一个很好的选择

YAML文件:

spring:
    jpa:
        properties:
            javax:
                persistence:
                    query:
                        timeout: 10000

一般来说,这是一个查询提示,它在全局定义时是否有效,取决于您使用的hibernate版本。它应该适用于Hibernate 5.4.6和UP。我的Hibernate版本是:<代码> 5.4.10.最终的相关的bug是:如果你有5.4.10,请仔细检查,如果你的最终目标是找到慢查询,考虑使用<代码> AudiabLeTeStudio。Log-LoopyQuase:@ RobertNestRojJ。这是一个查询提示,如果它在全局定义时起作用,则取决于您使用的hibernate版本。它应该适用于Hibernate 5.4.6和UP。我的Hibernate版本是:<代码> 5.4.10.最终相关的bug是:如果你有5.4.10,请仔细检查,如果你的最终目标是查找慢查询,考虑使用<代码>可用性文件> LogyLosixQuase:@ RobertNestRojJ,我确认版本有“代码> 5.4.10.最终< /代码>