Конфигурация конфигурации C3P0 TestConnectiononCheckin C3P0 в каркасе Hibernate / Spring
-
27-09-2019 - |
Вопрос
Я хотел бы установить свойство TestConnectiononCheckin для C3P0.
Однако у меня возникли проблемы с тем, поскольку DataSource C3P0 создан от моего имени в бобовом фасоте Hibernate Entity-Manager.
<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
> - это ключ конфигурации Hibernate, с которого в гибернациях с созданием источника данных C3P0 от моего имени.
Тем не менее, я не могу найти клавишу конфигурации Hibernate, который установит свойство TestConnectiononcheckin DataSource C3P0.
Есть ли такой ключ? Если нет, то должен ли я установить DataSource DataSource EntityManagers, и есть ли какие-либо трюки, которые я должен знать, прежде чем делать это?
Примечание. TestConnectionsoncheckout не является жизнеспособным вариантом, который имеет соответствующий ключ конфигурации Hibernate.
Решение
Существует только подмножество свойств C3P0, которые можно переопределить так:
http://www.mchange.com/projects/c3p0/index.html#hibernate-specific
Для других (в том числе TestConnectionsoncheckinhin) необходимо переопределить в C3P0.Properties