2017-08-28 115 views
0

當我自己使用Hibernate時,我可以完成類似Main.getSession().get(User.class, 1);的工作,其中getSession()將從會話工廠調用openSession()。但我怎樣才能做到這一點HikariDataSource? Wiki提到了一些關於HikariConnectionProvider的內容,但沒有給出任何例子。如何在Hibernate中使用HikariCP?

@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

如果我正確理解你,你希望Hibernate使用由Hikari提供的連接池。如果是這樣的話,那麼SessionFactory的有一個方法setDataSourc(...)

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

當你打開一個會話,連接將阿光池借用。