Как вы проверяете, что аннотация транзакции Java была обработана?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как вы проверяете, что аннотация транзакции Java была обработана?

Сообщение Anonymous »

У меня есть интерфейс, для которого я хочу реализовать транзакционный вариант.
public interface Service {
void handle(Object message) throws Exception;
}

Моя реализация использует аннотацию, указывающую на необходимость транзакции.
В простейшей форме это будет
import jakarta.transaction.Transactional;

public class TransactionalService implements Service {
private final Service delegate;

public TransactionalService(Service delegate) {
this.delegate = delegate;
}

@Transactional(Transactional.TxType.REQUIRED)
@Override
public void handle(Object message) throws Exception {
this.delegate.handle(message);
}
}

Как я могу проверить, что аннотация соблюдена? Есть ли более простой способ проверки с помощью TransactionManager? Такое ощущение, что я делаю двойную работу.
import jakarta.transaction.Transaction;
import jakarta.transaction.TransactionManager;
import jakarta.transaction.Transactional;

public class TransactionalService implements Service {
private final TransactionManager transactionManager;
private final Service delegate;

public TransactionalService(TransactionManager transactionManager, Service delegate) {
this.transactionManager = transactionManager;
this.delegate = delegate;
}

@Transactional(Transactional.TxType.REQUIRED)
@Override
public void handle(Object message) throws Exception {
Transaction transaction = transactionManager.getTransaction();
if (transaction != null) {
this.delegate.handle(message);
} else {
throw new IllegalStateException("No transaction in current thread " + Thread.currentThread());
}
}
}


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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