У меня есть фасол без состояния, который можно использовать для сохраняющихся объектов в базе данных. Этот факсимильный компонент вызывается методом сообщения onMessage. Проводная вещь заключается в том, что в первом сообщении все работает нормально, но в следующем сообщении метод, ответственный за сохранение, вызывается вне транзакции, хотя метод аннотируется с помощью REQUIRES_NEW.REQUIRES_NEW аннотированный метод выполняется без транзакции?
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public StateChange persistChange(long deviceId, ...) {
...
StateChange change = new StateChange(...);
em.persist(change);
em.refresh(change); // To provoke the error
return change;
}
Вызов обновления вызывает следующее исключение:
вызвано следующими причинами: javax.persistence.TransactionRequiredException: сделка не находится в процессе
Есть идеи? Я довольно новичок в JTA, поэтому, возможно, я пропустил что-то важное?