Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / В каком месте должна стоять - @Transactional / 13 сообщений из 13, страница 1 из 1
24.11.2015, 20:58
    #39112663
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком месте должна стоять - @Transactional
Скажите пожалуйста, где правильным будет поставить аннотацию @Transactional? В некоторых примерах я встречаю ее на контроллерах, в некоторых в слое сервиса, а иногда и в слое репозитория.
Спасибо
...
Рейтинг: 0 / 0
24.11.2015, 21:06
    #39112670
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком месте должна стоять - @Transactional
JulTв слое сервисаздесь
...
Рейтинг: 0 / 0
24.11.2015, 21:10
    #39112673
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком месте должна стоять - @Transactional
grasoff.netJulTв слое сервисаздесь
я так и делаю, но хочется докопаться до сути и понять, почему люди ставят иногда в контроллерах, а иногда в репо
...
Рейтинг: 0 / 0
24.11.2015, 21:44
    #39112682
Урванов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком месте должна стоять - @Transactional
Как вам уже ответили @Transactional должен стоять в слое сервиса.

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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