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

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

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


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

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

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


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

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


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


А с REQUIRES разве не будет работать?
...
Рейтинг: 0 / 0
06.02.2020, 04:07
    #39923170
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Transaction propagation MANDATORY
Hett
А с REQUIRES разве не будет работать?
Ну, например, хиберовская реализация javax.persistence.TypedQuery#getResultStream (AbstractProducedQuery#stream) при коммите курсор закрывает, т.е. если у нас есть утильный метод, который возвращает stream, а не список, то над этим методом нужно шлепать именно MANDATORY, в противном случае, вызывающий, не начавший транзакцию, будет получать пустой стрим вместо ошибки.
...
Рейтинг: 0 / 0
06.02.2020, 10:36
    #39923232
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Transaction propagation MANDATORY
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
Форумы / Java [игнор отключен] [закрыт для гостей] / Transaction propagation MANDATORY / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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