Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate无法使用HikariCP池创建sessionfactory_Hibernate_Sessionfactory_Hikaricp - Fatal编程技术网

Hibernate无法使用HikariCP池创建sessionfactory

Hibernate无法使用HikariCP池创建sessionfactory,hibernate,sessionfactory,hikaricp,Hibernate,Sessionfactory,Hikaricp,我尝试使用HikariCP池连接,但我无法启动应用程序,因为我从CreateSession获得了一个空对象 这是我的配置: 系统 Hibernate 4.3.6.1最终版本 MariaDB v10.0(x64) HibernateUtil类 public class HibernateUtil { private static SessionFactory sessionFactory; private static SessionFactory buildSessionFactory()

我尝试使用HikariCP池连接,但我无法启动应用程序,因为我从CreateSession获得了一个空对象

这是我的配置:

系统

  • Hibernate 4.3.6.1最终版本
  • MariaDB v10.0(x64)
HibernateUtil类

public class HibernateUtil {
private static SessionFactory sessionFactory;

private static SessionFactory buildSessionFactory() {
    try {
        Configuration configuration = new Configuration();
        configuration.configure("hibernate.cfg.xml");
        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);

        return sessionFactory;
    }
    catch (HibernateException ex) {
        throw new ExceptionInInitializerError(ex);
    }
}

public static SessionFactory getSessionFactory() {
    if (sessionFactory == null) {
        sessionFactory = buildSessionFactory();
    }
    return sessionFactory;
}
}
hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- Datos de conexión a la BD -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3307/******?zeroDateTimeBehavior=convertToNull</property>
        <property name="hibernate.connection.username">****</property>
        <property name="hibernate.connection.password">****</property>
        <property name="javax.persistence.validation.mode">none</property>
        <!-- Configuración de sesión -->
        <property name="connection.release_mode">after_transaction</property>
        <property name="current_session_context_class">thread</property>
        <!-- Configuración de la salida SQL y estadísticas -->
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
        <!-- Pool de conexiones -->
        <property name="hibernate.connection.provider_class">org.mariadb.jdbc.MySQLDataSource</property>
        <!-- Enable Hibernate's current session context -->
        <property name="hibernate.cache.use_second_level_cache">false</property>
        <property name="hibernate.cache.use_query_cache">false</property>
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
    </session-factory>
</hibernate-configuration>

org.hibernate.dialogue.mysqldialogue
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3307/******?zeroDateTimeBehavior=ConvertToFull
****
****
没有一个
事后交易
线
真的
真的
假的
org.mariadb.jdbc.MySQLDataSource
假的
假的
org.hibernate.cache.NoCacheProvider
日志

正在准备使用筛选器生成会话工厂: {}HHH000130:实例化显式连接提供程序:org.mariadb.jdbc.MySQLDataSource 应用程序启动方法中的异常


正如brettw所说,我只需要将provider类更改为

<prop key="hibernate.connection.provider_class">com.zaxxer.hikari.hibernate.HikariConnectionProvider</prop>
com.zaxxer.hikari.hibernate.HikariConnectionProvider

您使用的是什么版本的HikariCP,以及什么Java版本?如果启用调试日志记录,是否记录了其他信息?我启用了调试级别(抱歉,我以前禁用了),但我收到此错误
2014年11月7日12:09:11 PM com.util.HibernateUtil buildSessionFactory GRAVE:org.hibernate.service.spi.ServiceException:无法创建请求的服务[org.hibernate.engine.jdbc.connections.spi.ConnectionProvider]
我使用HIKARIP2.1.0和Java1.8.0(b11).App是一个JavaFX项目。此外,我使用MySQL Connector 5.1.33您说您使用的是HikariCP,但hibernate.connection.provider.class指向的是MySQLDataSource,而不是HikariCP hibernate连接提供程序。您需要查阅hibernate连接提供程序文档。