【问题标题】:TestConnectionOnCheckin c3p0 Configuration Property in Hibernate/Spring FrameworkHibernate/Spring 框架中的 TestConnectionOnCheckin c3p0 配置属性
【发布时间】:2010-06-16 17:55:53
【问题描述】:

我想为 c3p0 设置 testConnectionOnCheckin 属性。

但是我在这样做时遇到了麻烦,因为 c3p0 数据源是在休眠实体管理器 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>

其中每个&lt;prop key...1> 都是一个休眠配置键,使用它休眠代表我创建一个c3p0 数据源。

但是,我找不到用于设置 c3p0 数据源的 testConnectionsOnCheckin 属性的休眠配置键。

有这样的钥匙吗?如果没有,那么我应该直接设置 entityManagers 数据源吗?在这样做之前我应该​​知道什么技巧吗?

注意:testConnectionsOnCheckout 不是一个可行的选项,它有一个对应的休眠配置键。

【问题讨论】:

    标签: hibernate spring c3p0 entitymanager


    【解决方案1】:

    只有一部分 c3p0 属性可以像这样被覆盖:

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

    对于其他(包括 testConnectionsOnCheckin)需要在 c3p0.properties 中覆盖

    【讨论】:

    • 最新文档(上面的链接)也允许在 C3P0 道具前加上 hibernate.c3p0.XXX。所以你会有:hibernate.c3p0.testConnectionsOnCheckout
    • 这不是我阅读文档的方式。所有参数都可以在 Hibernate 中指定。其中一些,如果它们也在属性中定义,将覆盖 c3p0.properties。
    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多