我有一个Spring / JPA应用程序,Hibernate作为JPA提供程序。我通过以下方式在Spring中配置了一个C3P0数据源:
<bean id="myJdbcDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- Connection properties -->
<property name="driverClass" value="$DS{database.class}" />
<property name="jdbcUrl" value="$DS{database.url}" />
<property name="user" value="$DS{database.username}" />
<property name="password" value="$DS{database.password}" />
<!-- Pool properties -->
<property name="minPoolSize" value="5" />
<property name="maxPoolSize" value="20" />
<property name="maxStatements" value="50" />
<property name="idleConnectionTestPeriod" value="3000" />
<property name="loginTimeout" value="300" />
然后我在Spring实体管理器工厂中指定了这个数据源,如下所示:
<bean id="myLocalEmf"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="myapp-core" />
<property name="dataSource" ref="myJdbcDataSource" />
</bean>
但是,我最近注意到在浏览maven工件时是“hibernate-c3p0”。这是什么?这是我需要使用的东西吗?或者我已经正确配置了这个?
答案 0 :(得分:10)
hibernate-c3p0.jar提供了类org.hibernate.connection.C3P0ConnectionProvider
,这是一个基于C3P0的Hibernate ConnectionProvider
契约实现。如果要将C3P0用作Hibernate的独立连接池(通过hibernate.cfg.xml
文件配置),则需要此工件。因为你使用Spring,所以你不需要它。
答案 1 :(得分:1)
org.hibernate:hibernate-c3p0看起来就像你在配置Hibernate直接使用C3P0时使用的模块。
如果您发布的配置适合您,您不应该需要它 - 是吗?