2010-06-09 54 views
10

我有一個Hibernate作爲JPA提供者的Spring/JPA應用程序。我在春天通過配置C3P0數據來源:帶Hibernate的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

爲什麼它當然是[protocol droid](http://en.wikipedia.org/wiki/C3P0)。 – 2010-06-09 03:20:29

回答

10

hibernate-c3p0.jar提供了基於C3P0的Hibernate ConnectionProvider合同實現類org.hibernate.connection.C3P0ConnectionProvider。當您希望將C3P0用作Hibernate的獨立連接池(通過hibernate.cfg.xml文件進行配置)時,您需要此工件。既然你使用Spring,你不需要它。

+0

是否有任何理由/優勢可能意味着使用hibernate-c3p0版本是一個更好的主意,還是它們在功能上等同? – yochannah 2013-07-10 12:44:25

1

org.hibernate:如果您將Hibernate配置爲直接使用C3P0,hibernate-c3p0看起來就像您將使用的模塊。

你應該不需要它,假設你發佈的配置適合你 - 是嗎?

+1

它確實有效,但在Spring和休眠的世界中,人們不能太確定...... – HDave 2010-06-11 12:47:22

+0

你是什麼意思,你不能太確定?它可以工作,也可以不工作。 – 2010-06-11 13:00:54