powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Transaction propagation MANDATORY
8 сообщений из 8, страница 1 из 1
Transaction propagation MANDATORY
    #39923054
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь может подсказать жизненный пример, где было бы необходимо правило распротранения MANDATORY?
...
Рейтинг: 0 / 0
Transaction propagation MANDATORY
    #39923057
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
Кто-нибудь может подсказать жизненный пример, где было бы необходимо правило распротранения MANDATORY?

За свои слова не отвечаю, т.к. даже что такое Transaction propagation до сего момента не знал

Из_инетаPropagation.MANDATORY — обратный по отношению к Propagation.REQUIRES_NEW: всегда используется существующая транзакция и кидается исключение, если текущей транзакции нет.


то, что смог придумать: Callback'и ?
Запрет выполнения кода отдельно, только в рамках ранее созданной транзакции.

Наверное может/должен указываться у методов, которым требуется ранее_инициализированная транзакция. Т.е. сам метод, необходимой инициализации контекста (например состояние/глобальные_переменные пакетов на стороне сервера) не выполняет/не умеет.

IMHO
...
Рейтинг: 0 / 0
Transaction propagation MANDATORY
    #39923058
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как-то давно, на одном проекте, вешали на все дао методы. Если случайно сервис без транзакции, то упадет с ошибкой. Ну или вызов не из того места.
...
Рейтинг: 0 / 0
Transaction propagation MANDATORY
    #39923060
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
Кто-нибудь может подсказать жизненный пример, где было бы необходимо правило распротранения MANDATORY?


ну самый простой пример: DAO возвращает курсор (stream, iterator), а не список, вот когда мы ходим по этому курсору итерироваться, да еще и в БД что-то писать, там действительно нужно чтобы в DAO MANDATORY стояло.
...
Рейтинг: 0 / 0
Transaction propagation MANDATORY
    #39923064
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов

ну самый простой пример
ну еще все блокировки тоже имеет смысл по MANDATORY тащить, иначе смысла в них особо нет.
...
Рейтинг: 0 / 0
Transaction propagation MANDATORY
    #39923103
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Hett
Кто-нибудь может подсказать жизненный пример, где было бы необходимо правило распротранения MANDATORY?


ну самый простой пример: DAO возвращает курсор (stream, iterator), а не список, вот когда мы ходим по этому курсору итерироваться, да еще и в БД что-то писать, там действительно нужно чтобы в DAO MANDATORY стояло.


А с REQUIRES разве не будет работать?
...
Рейтинг: 0 / 0
Transaction propagation MANDATORY
    #39923170
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
А с REQUIRES разве не будет работать?
Ну, например, хиберовская реализация javax.persistence.TypedQuery#getResultStream (AbstractProducedQuery#stream) при коммите курсор закрывает, т.е. если у нас есть утильный метод, который возвращает stream, а не список, то над этим методом нужно шлепать именно MANDATORY, в противном случае, вызывающий, не начавший транзакцию, будет получать пустой стрим вместо ошибки.
...
Рейтинг: 0 / 0
Transaction propagation MANDATORY
    #39923232
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
А с REQUIRES разве не будет работать?

Код: java
1.
2.
3.
4.
5.
void method() {
  Object e = repository.getById(id);
  ...
  Object e = repository.getById(id);
}


- если method не в транзакции, а repository.getById с Propagation.REQUIRED, то два вызова getById будут в разных транзакциях. Работать будет, но в некоторых случаях неправильно
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Transaction propagation MANDATORY
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]