2010-06-16 5 views
0

Je souhaite définir la propriété testConnectionOnCheckin pour c3p0.TestConnectionOnCheckin Propriété de configuration c3p0 dans Hibernate/Spring Framework

Cependant, j'ai du mal à le faire car la source de données c3p0 est créée en mon nom au sein d'un bean entity-manager hibernate.

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
<property name="persistenceUnitManager" ref="persistenceUnitManager" /> 
<property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence" /> 
<property name="jpaProperties"> 
    <props> 
    <prop key="hibernate.dialect">${taxeng.entityManagerFactory.dialect}</prop> 
    <prop key="hibernate.hbm2ddl.auto">${taxeng.entityManagerFactory.ddl}</prop> 
    <prop key="hibernate.cache.provider_class">${taxeng.entityManagerFactory.cache}</prop> 
    <!-- Note that we use this due to the "ClassNotFoundException: org.hibernate.hql.ast.HqlToken" issue --> 
    <prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop> 

    <!-- Database connection pooling --> 
    <prop key="hibernate.c3p0.min_size">${taxeng.hibernate.c3p0.min_size}</prop> 
    <prop key="hibernate.c3p0.max_size">${taxeng.hibernate.c3p0.max_size}</prop> 
    <prop key="hibernate.c3p0.timeout">${taxeng.hibernate.c3p0.timeout}</prop> 
    <prop key="hibernate.c3p0.acquire_increment">${taxeng.hibernate.c3p0.acquire_increment}</prop> 
    <prop key="hibernate.c3p0.idle_test_period">${taxeng.hibernate.c3p0.idle_test_period}</prop> 
    <prop key="hibernate.c3p0.max_statements">${taxeng.hibernate.c3p0.max_statements}</prop> 
    <prop key="hibernate.show_sql">false</prop> 
    </props> 
</property> 

Où chacun des <prop key...1> est une clé de configuration de mise en veille prolongée qui veille prolongée avec créer une source de données c3p0 en mon nom.

Cependant, je ne trouve pas la clé de configuration d'hibernation qui définira la propriété testConnectionsOnCheckin de la source de données c3p0.

Y a-t-il une telle clé? Si ce n'est pas le cas, dois-je définir directement la source de données entityManagers et y a-t-il des astuces que je devrais connaître avant de faire cela?

Remarque: testConnectionsOnCheckout n'est pas une option viable, qui possède une clé de configuration d'hibernation correspondante.

Répondre

1

Il y a seulement un sous-ensemble de propriétés c3p0 qui peut être redéfinie comme ça:

http://www.mchange.com/projects/c3p0/index.html#hibernate-specific

Pour d'autres (y compris testConnectionsOnCheckin) doivent être surchargées dans c3p0.properties

+0

documentation récente (lien ci-dessus) permet de préfixer les accessoires C3P0 avec hibernate.c3p0.XXX aussi. Donc vous auriez: hibernate.c3p0.testConnectionsOnCheckout –

+0

Ce n'est pas comme ça que j'ai lu la documentation. Tous les paramètres peuvent être spécifiés dans Hibernate. CERTAINS d'entre eux remplaceront c3p0.properties s'ils sont AUSSI définis dans les propriétés. – JRun

Questions connexes