如何在Spring boot 1.5.2中杀死Hibernates数据库连接?

时间:2017-07-06 16:16:19

标签: java database spring hibernate spring-boot

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

@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启动时这样做,任何想法?

我尝试将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.

1 个答案:

答案 0 :(得分:1)

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

参考此stackoverflow链接:

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