Главная » Spring » Транзакции Java Persistence API

0

Фреймворк Hibernate уже в течение многих лет фактически яв- ляется стандартным механизмом хранения данных в Java-прило- жениях, но совсем недавно на сцену вышла библиотека Java Per- sistence API (JPA) , ставшая действительным стандартом в области хранения данных. Если вы готовы перейти на использование JPA, тогда для управления транзакциями вам потребуется диспетчер JpaTransactionManager. Ниже показано, как выполняется настройка компонента JpaTransactionManager в Spring:

<bean  id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">

<property name="entityManagerFactory" ref="entityManagerFactory" />

</bean>

Диспетчеру JpaTransactionManager необходима только ссылка на фа- брику диспетчера сущностей JPA (на любую реализацию интерфей- са javax.persistence.EntityManagerFactory). Управление транзакциями JpaTransactionManager будет осуществляться посредством объекта EntityManager, возвращаемого фабрикой.

Помимо применения транзакций к операциям JPA, диспетчер

JpaTransactionManager  также поддерживает транзакции для простых

операций JDBC в том же самом источнике данных DataSource, исполь- зуемом фабрикой EntityManagerFactory. Чтобы воспользоваться этой поддержкой, диспетчера JpaTransactionManager необходимо также свя- зать с реализацией интерфейса JpaDialect. Например, предположим, что в приложении используется компонент EclipseLinkJpaDialect, на- строенный следующим образом:

<bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect"  />

Тогда вам необходимо внедрить компонент jpaDialect в компонент

JpaTransactionManager, как показано ниже:

<bean  id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">

<property name="entityManagerFactory" ref="entityManagerFactory" />

<property  name="jpaDialect"  ref="jpaDialect"  />

</bean>

Важно отметить, что при этом реализация JpaDialect должна под- держивать смешанный JPA/JDBC доступ к данным. Все реализа- ции  JpaDialect   (EclipseLinkJpaDialect,  HibernateJpaDialect,  OpenJpaDialect и TopLinkJpaDialect), входящие в состав Spring, обеспечивают такую смешанную поддержку механизмов JPA и JDBC. А реализация DefaultJpaDialect   –  нет.

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии