Весенняя конфигурация C3P0 с Hibernate? - PullRequest
10 голосов
/ 09 июня 2010

У меня есть приложение Spring / JPA с Hibernate в качестве поставщика JPA. Я настроил источник данных C3P0 в Spring через:

<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". Что это? Это то, что мне нужно использовать? Или я уже настроил это правильно?

Ответы [ 2 ]

10 голосов
/ 09 июня 2010

hibernate-c3p0.jar предоставляет класс org.hibernate.connection.C3P0ConnectionProvider, основанную на C3P0 реализацию контракта Hibernate ConnectionProvider. Этот артефакт нужен вам, если вы хотите использовать C3P0 в качестве автономного пула соединений Hibernate (который вы настраиваете через файл hibernate.cfg.xml). Поскольку вы используете Spring, он вам не нужен.

1 голос
/ 09 июня 2010

org.hibernate: hibernate-c3p0 выглядит как модуль, который вы использовали бы, если бы вы настраивали Hibernate для непосредственного использования C3P0.

Вам это не нужно, если опубликованная вами конфигурация работает на вас - не так ли?

...