2017-08-28 202 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; 
} 

当你打开一个会话,连接将阿光池借用。