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

How to kill Hibernates database connections in Spring boot 1.5.2?

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

1
2
3
4
5
6
7
8
@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对象注入一个类来重命名数据库,但它无法关闭与数据库的连接。

1
2
3
4
5
6
@Autowired
private DataSource dataSource;

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

有错误

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

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

参考这个stackoverflow链接:

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