2010-06-16 3 views
0

Я хотел бы установить свойство testConnectionOnCheckin для c3p0.TestConnectionOnCheckin c3p0 Свойство конфигурации в Hibernate/Spring Framework

Однако у меня возникли проблемы с этим, потому что источник данных c3p0 создается от моего имени в компоненте суба-менеджера спящего режима.

<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 от моего имени.

Однако я не могу найти конфигурационный ключ спящего режима, который установит свойство testConnectionsOnCheckin источника данных c3p0.

Есть ли такой ключ? Если нет, то следует ли мне напрямую устанавливать источник данных entityManager и есть ли какие-либо трюки, которые я должен знать, прежде чем это делать?

Примечание: testConnectionsOnCheckout не является жизнеспособным вариантом, который имеет соответствующий конфигурационный ключ для спящего режима.

ответ

1

Там только подмножество свойств C3P0, которые могут быть переопределены так:

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

Для других (в том числе testConnectionsOnCheckin) должны быть перекрыты в c3p0.properties

+0

Последняя документация (ссылка выше) позволяет префикс реквизитов C3P0 с hibernate.c3p0.XXX тоже. Поэтому у вас будет: hibernate.c3p0.testConnectionsOnCheckout –

+0

Это не то, как я читаю документацию. Все параметры могут быть указаны в Hibernate. Некоторое из них переопределит c3p0.properties, если они ТАКЖЕ определены в свойствах. – JRun

Смежные вопросы