简体   繁体   English

如何在Hibernate中使用HikariCP?

[英]how to utilize HikariCP with Hibernate?

When I used Hibernate itself, I could've done something like Main.getSession().get(User.class, 1); 当我使用Hibernate本身时,我可以完成类似Main.getSession().get(User.class, 1); where getSession() would call openSession() from the session factory. 其中getSession()从会话工厂调用openSession() but how can I do the same with HikariDataSource ? 但是我该如何使用HikariDataSource做同样的HikariDataSource Wiki mentioned something about HikariConnectionProvider but no example was given. 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);
    }
}

If I understand you correctly, you want Hibernate to use connection pool provided by Hikari . 如果我对您的理解正确,那么您希望Hibernate使用Hikari提供的连接池。 If that is the case, then SessionFactory has a method setDataSourc(...) 如果是这种情况,则SessionFactory具有方法setDataSourc(...)

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

When you open a session, a connection will be borrowed from Hikari pool. 当您打开会话时,将从Hikari池中借用连接。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM