java - hibernate、jpa、c3p0 和警告 HHH000208

标签 java hibernate jpa connection-pooling c3p0

我正在使用 Hibernate 4.1.6Final 来访问 JPA 数据源。通过 c3p0 添加连接池时,我遇到了以下日志消息:

611  [main] WARN  org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator  - HHH000208: org.hibernate.connection.C3P0ConnectionProvider has been deprecated in favor of org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider; that provider will be used instead.

以下是我的 POM 中的 hibernate 工件:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-entitymanager</artifactId>
  <version>4.1.6.Final</version>
</dependency>
<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-c3p0</artifactId>
  <version>4.1.6.Final</version>
</dependency>

以及来自persistence.xml的相关属性:

<property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider" />
<property name="hibernate.c3p0.max_size" value="100" />
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.acquire_increment" value="5" />
<property name="hibernate.c3p0.idle_test_period" value="500" />
<property name="hibernate.c3p0.max_statements" value="50" />
<property name="hibernate.c3p0.timeout" value="10000" />

即使我将提供程序的名称更改为喜欢的类,我也会收到相同的警告。 hibernate.connection.provider_class 使用的正确类名是什么?是否有除 c3p0 之外的用于生产用途的首选连接提供程序?

最佳答案

我观察到同样的警告有一段时间了,没有看到对我的应用程序的功能或性能有任何影响。但今天我决定将 persistence.xml 中的条目(如警告消息本身所述)切换为:

<!-- C3p0 connection pooling configuration -->
<property name="hibernate.connection.provider_class" value="org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider"/>

这解决了问题;我也在使用4.1.6Final

关于java - hibernate、jpa、c3p0 和警告 HHH000208,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13076572/

相关文章:

java - DOM,SAX和StAX XML解析器之间有什么区别?

java - 如何更新jpa实体管理器中的特定实体/行

java - Android 版

java - Spring Boot + JPA : Column name annotation ignored

java - 多对多关系中没有项目的实体的 JPQL

java - 在流的排序方法中使用 Comparator::reverseOrder 和 Comparator.reverseOrder() 有什么区别

hibernate - Spring4 @Scheduled @Transaction 抛出多个数据源刷新时没有事务正在进行

mysql - Hibernate 查询比较日期(最多过去 10 个月)

java - 实体 equals()、hashCode() 和 toString()。如何正确实现它们?

java - JPA 注释、列表与单独包含的实例相反