Проблема транзакции при смешивании JDBC/JPA с пружинойJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Проблема транзакции при смешивании JDBC/JPA с пружиной

Сообщение Anonymous »

Я работаю над интеграцией двух приложений в одно развертывание, устаревшее приложение, основанное на JDBC, и новое, основанное на Hibernate. Моя проблема заключается в том, что иногда транзакции не работают, как и ожидалось, и я не уверен, что это проблема в моем коде или что -то в этом роде. Мы написали обертку для обработки коммита/отката, чтобы начать новую точки транзакции в jpatransactionmanager.getTransaction (который объявляет через Javadoc, она запустит новую транзакцию) и TransactionStatus.commit/hollback для завершения транзакции. Отладив проблему, я обнаружил, что ответственный код в DB-Driver фактически открыл транзакцию. Этот код не запускается JPatransActionManager.getTransaction . Чтобы запустить новую транзакцию, дается распространение «требуется_new». В то время как менеджер устанавливает свое внутреннее состояние в соответствии с ожидаемой «запущенной транзакцией, приостановлена, новая транзакционная стартара» это не распространяется до базового соединения. Следовательно, работа над уже открытым соединением не будет выполнена на новой транзакции.
, затем TransactionDefinition.commit/rowlback , вызывает правильное обращение с этим (предположительно), так что драйвер Firebird получает вызов Commit/Oflback. Этот вызов будет тогда неооооооокой, так как у драйвера нет открытой локальной транзакции.
Мы регистрируем DataSource и EntityManagerFactory с помощью JPatransActionManager , и мы также используем EntityManger и подключение экземпляры, зарегистрированные через менеджер. Если нам нужно создать новое соединение , мы делаем это по dataSourceutils.getConnection и связываем это соединение с TransactionSynchronizationManager .
при использовании декларативной транзакции семантики как JDBC, так и JPA часть приложения работают как ожидается.

Подробнее здесь: https://stackoverflow.com/questions/796 ... ith-spring
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Иметь строчное значение от поля Enum при отправке запроса с пружиной
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • У меня ошибка при установке Swagger с пружиной
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Иметь строчное значение от поля Enum при отправке запроса с пружиной
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Почему я получаю сообщение «Ошибка отправки транзакции: не удалось отменить маршалинг транзакции» при использовании библ
    Anonymous » » в форуме Php
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Mybatis с пружиной: не удалось найти карту результатов
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»