JTA транзакции с JPA (Hibernate) - PullRequest
2 голосов
/ 08 февраля 2012

Если я использую в файле persistence.xml транзакцию-тип = "RESOURCE_LOCAL", тогда я могу избежать использования источника данных, отличного от jta, используя свойства:

<properties>
  <property name="hibernate.bytecode.use_reflection_optimizer" value="false"/>
  <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
  <property name="hibernate.connection.password" value="passsample"/>
  <property name="hibernate.connection.url" value="jdbc:oracle:thin:urlsample"/>
  <property name="hibernate.connection.username" value="usersample"/>
  <property name="hibernate.default_schema" value="schemasample"/>
  <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>        
</properties>

Вопрос в том,использовать транзакцию-тип = "JTA", тогда обязательно использовать источник данных jta?Если это обязательно, пожалуйста, скажите мне, почему?Если не то, что мне нужно сделать?

Я пытаюсь настроить приложение с glassfish, и все отлично работает с внешним источником данных (настроенным на glassfish), но я бы хотел настроить все весной и с помощьюсвойств.

Любое решение для этого?

1 Ответ

1 голос
/ 08 февраля 2012

Для JTA типа транзакции вы должны определить <jta-data-source>. Но если вы используете RESOURCE_LOCAL (не JTA), то это <non-jta-data-source>.

JTA - это тип транзакции по умолчанию, если он не указан. Этот элемент используется для указания источника данных, обычно это глобальное имя JNDI для ссылки на источник данных.

Транзакция в JTA может проходить через несколько постоянных модулей / баз данных и внешнюю среду (например, JMS). Как правило, JTA используется в Java EE и RESOURCE_LOCAL используется в среде Java SE.

...