【问题标题】:How to kill Hibernates database connections in Spring boot 1.5.2?如何在 Spring boot 1.5.2 中终止 Hibernates 数据库连接?
【发布时间】:2017-12-10 18:30:03
【问题描述】:

当我使用 Spring boot 1.5.2 和 Hibernate 连接到配置如下的数据源时,问题很简单:

@Bean
public DataSource dataSource() {
   DataSourceBuilder = datasourceBuilder = DataSourceBuilder.create();
   dataSourceBuilder.url(DATASOURCE_URL);
   dataSourceBuilder.username(DATASOURCE_USERNAME);
   dataSourceBuilder.password(DATASOURCE_PASSWORD);
   return dataSourceBuilder.build();
}

这是一个命令行应用程序,所以当应用程序快完成时,我只想关闭与数据库的 Hibernate 连接并使用 JDBC 重命名数据库。但是,我不知道如何在 Spring boot 中执行此操作,知道吗?

我试图将 DataSource 对象注入一个类以重命名数据库,但它无法关闭与数据库的连接。

@Autowired
private DataSource dataSource;

public void closeConnection() {
    dataSource.close();
}

有错误

org.postgresql.util.PSQLException: ERROR: database "DATABASE" is being accessed by other users
Detail: There are 10 other sessions using the database.

【问题讨论】:

    标签: java database spring hibernate spring-boot


    【解决方案1】:

    您可以使用pg_terminate_backend() 来终止连接。您必须是超级用户才能使用此功能。这适用于所有操作系统。

    参考这个stackoverflow链接:

    https://stackoverflow.com/a/5109190/7801800

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 2016-12-17
      • 2017-11-29
      • 2018-10-10
      • 2022-10-02
      相关资源
      最近更新 更多