Конфигурация конфигурации C3P0 TestConnectiononCheckin C3P0 в каркасе Hibernate / Spring

StackOverflow https://stackoverflow.com/questions/3055873

Вопрос

Я хотел бы установить свойство 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top