2015-02-17 3 views
0

У меня возникли проблемы с установкой некоторых свойств Hikari в мое соединение. На данный момент я не то, что пропустил.HikariCP Spring + Hibernate + MySQL: метод не найден: setMaxLifetime

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig"> 
    <property name="poolName" value="springHikariCP" /> 
    <property name="connectionTestQuery" value="SELECT 1" /> 
    <property name="dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" /> 
    <property name="dataSourceProperties"> 
     <props> 
      <prop key="url">jdbc:mysql://localhost:3306/mysql_demo?zeroDateTimeBehavior=convertToNull</prop> 
      <prop key="user">root</prop> 
      <prop key="password">admin</prop> 
      <prop key="maximumPoolSize">50</prop> 
      <prop key="maxLifetime">28000</prop> 
      <prop key="idleTimeout">30000</prop> 

      <prop key="prepStmtCacheSize">250</prop> 
      <prop key="prepStmtCacheSqlLimit">2048</prop> 
      <prop key="cachePrepStmts">true</prop> 
      <prop key="useServerPrepStmts">true</prop> 

     </props> 
    </property> 
</bean> 

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> 
    <constructor-arg ref="hikariConfig" /> 
</bean> 

Когда я установил maxLifetime свойство, я получаю эту ошибку:

java.beans.IntrospectionException: Method not found: setMaxLifetime 
at java.beans.PropertyDescriptor.<init>(Unknown Source) 
at com.zaxxer.hikari.util.PropertyBeanSetter.setProperty(PropertyBeanSetter.java:125) 
at com.zaxxer.hikari.util.PropertyBeanSetter.setTargetFromProperties(PropertyBeanSetter.java:63) 
at com.zaxxer.hikari.pool.PoolUtilities.initializeDataSource(PoolUtilities.java:103) 
at com.zaxxer.hikari.pool.BaseHikariPool.<init>(BaseHikariPool.java:153) 
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:61) 
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:49) 
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:78) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 

Я использую:

гибернации 4.3.7.Final и разъем Mysql 5.1.21 и HikariCP :

<dependency> 
    <groupId>com.zaxxer</groupId> 
    <artifactId>HikariCP-java6</artifactId> 
    <version>2.3.2</version> 
</dependency> 
+0

Это не свойство 'MysqlDataSource', в котором установлены свойства/значения в' dataSourceProperties'. Это просто свойство «HikariDataSource». Переместите его на один уровень как обычное свойство. –

+0

да, я думаю, что позже :( –

ответ

1

Мне нужно переместить недвижимость в t place

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig"> 
     <property name="poolName" value="springHikariCP" /> 
     <property name="connectionTestQuery" value="SELECT 1" /> 
     <property name="dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" /> 
     <property name="maximumPoolSize" value="50" /> 
     <property name="maxLifetime" value="28000" /> 
     <property name="idleTimeout" value="30000" /> 
     <property name="dataSourceProperties"> 
      <props> 
       <prop key="url">jdbc:mysql://localhost:3306/mysql_demo?zeroDateTimeBehavior=convertToNull</prop> 
       <prop key="user">root</prop> 
       <prop key="password">admin</prop> 
       <prop key="prepStmtCacheSize">250</prop> 
       <prop key="prepStmtCacheSqlLimit">2048</prop> 
       <prop key="cachePrepStmts">true</prop> 
       <prop key="useServerPrepStmts">true</prop> 
      </props> 
     </property> 
    </bean> 
Смежные вопросы