Может ли один EntityManager (Hibernate) участвовать в нескольких одновременных транзакциях?

StackOverflow https://stackoverflow.com/questions/1389205

Вопрос

Есть ли способ, чтобы один EntityManager мог беспрепятственно участвовать в нескольких одновременных транзакциях?

Ну, не то чтобы одновременно.Что-то вроде:

  1. Начать передачу 1
  2. Делайте что-нибудь в tx 1
  3. Начать передачу 2
  4. Делайте что-нибудь в tx 2
  5. Зафиксировать передачу 2
  6. Присоединяйтесь к отправке 1 назад
  7. Делайте что-нибудь в tx 1
  8. Зафиксировать передачу 1

с шагами, которые следуют один за другим, не перекрываясь.

Это было полезно?

Решение

Отдельный транзакции?Нет, не может.

Попытка позвонить EntityTransaction.begin() в текущей активной транзакции (что вам и придется сделать, прямо или косвенно) приведет к IllegalStateException будучи брошенным.

Концепции единиц работы/объема транзакции подробно описаны в Руководство по Hibernate EntityManager.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top