当我自己使用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);
}
}
答案 0 :(得分:0)
如果我理解正确,您希望Hibernate使用Hikari
提供的连接池。如果是这种情况,则SessionFactory有一个方法setDataSourc(...)
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
// ...
return sessionFactory;
}
当您打开会话时,将从Hikari池中借用连接。