您的配置有缺陷。您正在
DataSource应用程序上下文中进行配置。因此,基本上所有
hibernate.c3po属性都是无用的,其次,该
hibernate.connection.provider_class属性的设置破坏了您的应用程序。该
C3P0ConnectionProvider预计然而,您使用的是基本的一个C3P0连接
DriverManagerDataSource。
我建议不要尝试让hibernate来管理池,而只需在applicationcontext内部对其进行配置。用以下内容替换数据源定义
<bean id="dataSource" destroy-method="close"> <!-- Connection properties --> <property name="driverClass" value="org.postgresql.Driver" /> <property name="jdbcUrl" value="jdbc:postgresql://localhost/mydatabase" /> <property name="user" value="postgres" /> <property name="password" value="pgadmin" /> <!-- Pool properties --> <property name="minPoolSize" value="5" /> <property name="maxPoolSize" value="20" /> <property name="acquireIncrement" value="1" /> <property name="maxStatements" value="50" /> <property name="idleConnectionTestPeriod" value="3000" /> <property name="loginTimeout" value="300" /></bean>
然后从您的persistence.xml中删除
hibernate.c3p0和
hibernate.connection.provider_class。将配置移至Spring的附加优势在于,您可以使用属性文件来包含属性,并用a
PropertyPlaceHolderConfigurer替换它们,而不必在persistence.xml中对其进行修复。
基本上,您可以从persistence.xml中删除所有属性,然后将它们移至基于spring的配置中。
2其他,非相关建议。您可以删除
<context:annotation-config />暗示的内容
<context:component-scan/>。建议在标题中使用无版本的xsd文件,因此建议删除版本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)