Reputation: 5027
I try to use HikariCP pool connection, but I can't make app starts because I get all time, a null object from create sesion.
This is my configuration:
System
HibernateUtil class
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>
LOG
Preparing to build session factory with filters : {} HHH000130: Instantiating explicit connection provider: org.mariadb.jdbc.MySQLDataSource Exception in Application start method
Upvotes: 1
Views: 2171
Reputation: 5027
As brettw say, I only need to change the provider class to
<prop key="hibernate.connection.provider_class">com.zaxxer.hikari.hibernate.HikariConnectionProvider</prop>
Upvotes: 1