У меня есть интерфейс, для которого я хочу реализовать транзакционный вариант.
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
Программисты JAVA общаются здесь
-
Anonymous
1720454969
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());
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78706161/how-do-you-validate-that-a-java-transactional-annotation-has-been-handled[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия