【问题标题】:spring.jpa.properties.javax.persistence.query.timeout not working for PostgreSQLspring.jpa.properties.javax.persistence.query.timeout 不适用于 PostgreSQL
【发布时间】:2020-05-09 19:08:26
【问题描述】:

我希望有一个选项可以将所有 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 版本有问题吗?有没有其他方法可以实现查询执行超时?

【问题讨论】:

标签: spring postgresql hibernate jpa spring-data-jpa


【解决方案1】:

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

YAML 文件:

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

【讨论】:

    猜你喜欢
    • 2012-04-14
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2019-08-27
    • 2014-09-16
    • 2019-05-04
    相关资源
    最近更新 更多