如何在 Hibernate 中使用 HikariCP?

how to utilize HikariCP with Hibernate?

当我使用 Hibernate 本身时,我可以做类似 Main.getSession().get(User.class, 1); 的事情,其中​​ getSession() 会从会话工厂调用 openSession()。但是我怎样才能对 HikariDataSource 做同样的事情呢? Wiki 提到了一些关于 HikariConnectionProvider 但没有给出例子。

@Bean
public DataSource dataSource() throws SQLException {
    if (dbUrl == null || dbUrl.isEmpty()) {
        return new HikariDataSource();
    } else {
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl(dbUrl);
        return new HikariDataSource(config);
    }
}

如果我没理解错的话,你希望 Hibernate 使用 Hikari 提供的连接池。如果是这样,那么 SessionFactory 有一个方法 setDataSourc(...)

@Bean
public LocalSessionFactoryBean sessionFactory() {
    LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
    sessionFactory.setDataSource(dataSource());
    // ...
    return sessionFactory;
}

当您打开一个会话时,将从 Hikari 池中借用一个连接。