У меня есть интерфейс, для которого я хочу реализовать транзакционный вариант.
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
Как вы проверяете, что аннотация транзакции Java была обработана? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему ошибка fopen () не может быть обработана с помощью попытки поймать? [дублировать]
Anonymous » » в форуме Php - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
CRM Custom Workflow Действие - как вы проверяете, какой входной параметр был передан
Anonymous » » в форуме C# - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-