powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / В каком месте должна стоять - @Transactional
13 сообщений из 13, страница 1 из 1
В каком месте должна стоять - @Transactional
    #39112663
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите пожалуйста, где правильным будет поставить аннотацию @Transactional? В некоторых примерах я встречаю ее на контроллерах, в некоторых в слое сервиса, а иногда и в слое репозитория.
Спасибо
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39112670
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTв слое сервисаздесь
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39112673
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.netJulTв слое сервисаздесь
я так и делаю, но хочется докопаться до сути и понять, почему люди ставят иногда в контроллерах, а иногда в репо
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39112682
Урванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как вам уже ответили @Transactional должен стоять в слое сервиса.

Развёрнутое объяснение вот здесь
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39112686
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTпочему люди ставят иногда в контроллерах, а иногда в репо
Библия, Римлянам 5:12Посему, как одним человеком грех вошел в мир, и грехом смерть, так и смерть перешла во всех человеков, [потому что] в нем все согрешили.в двух словах - люди несовершенны
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39112705
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.netJulTпочему люди ставят иногда в контроллерах, а иногда в репо
Библия, Римлянам 5:12Посему, как одним человеком грех вошел в мир, и грехом смерть, так и смерть перешла во всех человеков, [потому что] в нем все согрешили.в двух словах - люди несовершенны
Аминь, брат
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39112826
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTСкажите пожалуйста, где правильным будет поставить аннотацию @Transactional? В некоторых примерах я встречаю ее на контроллерах, в некоторых в слое сервиса, а иногда и в слое репозитория.
Спасибо

В сервисе - обязательно. Как я уже не раз обращал ваше внимание Service у Фаулера значится как Transaction Script. А бизнес-транзакция она в подавляющем большинстве случаев совпадает с транзакцией в БД, кроме специальных случаев.

В других слоях - по усмотрению. В Repository/DAO желательно на всякий случай, вдруг где-то нужен вызов мимо сервиса. С другой стороны там может быть стоит использовать Propagation REQUIRES, чтобы при доступе без транзакции ловить исключение, а не запускать какую-попало транзакцию.


Есть ещё такой ORM костыль как Open Session In View, а scope сессии он тоже почти всегда совпадает со scope транзакции. В таких случаях и в контроллере можно использовать @Transactional.
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39113620
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz

Есть ещё такой ORM костыль как Open Session In View, а scope сессии он тоже почти всегда совпадает со scope транзакции. В таких случаях и в контроллере можно использовать @Transactional.

а разве так можно делать?

нас учили что нужно вытаскивать исключительно то что тебе нужно - и под это писать сразу запросы и DTO VO transfer object итд

типа есть сущность персона - а тебе нужно достать только имена и дату рождения - достаешь только их итд ...

в том числе чтобы не создавать Open Session In View ... получил в слое репозитария конкретные данне и сразу их отдал на след. уровень абстракции...

Open Session In View - зачем он вообще нужен?
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39113707
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,
Когда проект на jdbc без орм
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39113709
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,
Или десктоп. Сессия с 9ти утра до 6ти вечера.
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39113844
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Atum1,
Когда проект на jdbc без орм

Нет, так тоже нельзя. Потому что пул коннектов вполне может быть и без орм.

Petro123Atum1,
Или десктоп. Сессия с 9ти утра до 6ти вечера.

А тут да, тут иногда можно.

Хотя в целом- это плохой приём.
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39113863
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF
Alexey TominХотя в целом- это плохой приём.
"В целом, по больнице - 36,6."
А проекты такие есть и будут.
Т.к. в корпоративе юзкейс: "Тут я в БД через 3 окна построю объект, а потом закоммичу" решается за пол часа.
А без длинной транзакции в БД - за 6 часов.
Alexey TominПотому что пул коннектов
Для меня главное наличие ОРМ. А наличие пул - технический мелкий вопрос.
...
Рейтинг: 0 / 0
В каком месте должна стоять - @Transactional
    #39113864
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1а разве так можно делать?

Ну, а кто запретит? Народ делает.

Atum1нас учили что нужно вытаскивать исключительно то что тебе нужно - и под это писать сразу запросы и DTO VO transfer object итд

Да, я тоже об этом в каждой теме пишу. Но в жизни оно не всегда так как мы того хотим.

Atum1Open Session In View - зачем он вообще нужен?
Костыль же. Зачем нужны костыли? Закрывать косяки.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / В каком месте должна стоять - @Transactional
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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