2014-11-06 20 views
1

나는 HikariCP 풀 연결을 사용하려고 시도하지만 나는 모든 시간을 얻기 때문에 응용 프로그램을 시작할 수 없습니다. create sesion의 null 객체입니다. Hibernate가 HikariCP 풀을 사용하여 sessionfactory를 만들지 못함

내 구성입니다 :

시스템

  • 최대 절전 모드 4.3.6.Final
  • MariaDB의 V10.0 (64)

HibernateUtil과 클래스

{} HHH000130 : 인스턴스화 명시 적 연결을 제공 : org.mariadb.jdbc 필터 세션 공장을 건설 준비
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

.MySQLDataSource 응용 프로그램 시작 방법의 예외

,451,515,
+0

당신이 HikariCP의 어떤 버전을 사용하고 어떤 자바 버전으로 제공 클래스를 변경해야 할 말? 디버그 로깅을 활성화하면 추가 정보가 기록됩니까? – brettw

+0

디버깅 수준을 활성화합니다. (미안 해요. 사용 안 함)이 오류가 발생했습니다. 'nov 07, 2014 12:09:11 PM com.util.HibernateUtil buildSessionFactory GRAVE : org.hibernate.service.spi.ServiceException : 만들 수 없습니다. 요청 된 서비스 [org.hibernate.engine.jdbc.connections.spi.ConnectionProvider]' – Marcos

+0

HikariCP 2.1.0과 Java 1.8.0_40-ea (b11)를 사용합니다. 응용 프로그램은 JavaFX 프로젝트입니다. 또한 MySQL Connector 5.1.33을 사용합니다. – Marcos

답변

1

은 brettw 난 단지

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