2010-06-16 38 views
0

我想爲c3p0設置testConnectionOnCheckin屬性。TestConnectionOnCheckin c3p0 Hibernate/Spring Framework中的配置屬性

但是我遇到了麻煩,因爲c3p0數據源是在我的hibernate entity-manager bean中創建的。

<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> 

這裏每個<prop key...1>的是,其與創建代表我一個C3P0數據源休眠休眠配置密鑰。

但是,我找不到將設置c3p0數據源的testConnectionsOnCheckin屬性的hibernate配置鍵。

有沒有這樣的鑰匙?如果不是,那麼我應該直接設置entityManagers數據源,並且在執行此操作之前是否有任何技巧我應該知道?

注意:testConnectionsOnCheckout不是一個可行的選項,它有一個相應的休眠配置密鑰。

回答

1

這裏只有C3P0屬性的子集,可以覆蓋這樣的:

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

對於其他人(包括testConnectionsOnCheckin)需要c3p0.properties被覆蓋

+0

最新文檔(以上鍊接)也允許在hibernate.c3p0.XXX前綴C3P0道具。所以你應該有:hibernate.c3p0.testConnectionsOnCheckout – 2013-10-03 09:26:18

+0

這不是我閱讀文檔的方式。所有參數都可以在Hibernate中指定。其中一些將覆蓋c3p0.properties,如果它們也在屬性中定義的話。 – JRun 2014-03-08 13:30:04