|
|
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
Скажите пожалуйста, где правильным будет поставить аннотацию @Transactional? В некоторых примерах я встречаю ее на контроллерах, в некоторых в слое сервиса, а иногда и в слое репозитория. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 20:58 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
JulTв слое сервисаздесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 21:06 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
grasoff.netJulTв слое сервисаздесь я так и делаю, но хочется докопаться до сути и понять, почему люди ставят иногда в контроллерах, а иногда в репо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 21:10 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 21:44 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
JulTпочему люди ставят иногда в контроллерах, а иногда в репо Библия, Римлянам 5:12Посему, как одним человеком грех вошел в мир, и грехом смерть, так и смерть перешла во всех человеков, [потому что] в нем все согрешили.в двух словах - люди несовершенны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 21:47 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
grasoff.netJulTпочему люди ставят иногда в контроллерах, а иногда в репо Библия, Римлянам 5:12Посему, как одним человеком грех вошел в мир, и грехом смерть, так и смерть перешла во всех человеков, [потому что] в нем все согрешили.в двух словах - люди несовершенны Аминь, брат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 22:16 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
JulTСкажите пожалуйста, где правильным будет поставить аннотацию @Transactional? В некоторых примерах я встречаю ее на контроллерах, в некоторых в слое сервиса, а иногда и в слое репозитория. Спасибо В сервисе - обязательно. Как я уже не раз обращал ваше внимание Service у Фаулера значится как Transaction Script. А бизнес-транзакция она в подавляющем большинстве случаев совпадает с транзакцией в БД, кроме специальных случаев. В других слоях - по усмотрению. В Repository/DAO желательно на всякий случай, вдруг где-то нужен вызов мимо сервиса. С другой стороны там может быть стоит использовать Propagation REQUIRES, чтобы при доступе без транзакции ловить исключение, а не запускать какую-попало транзакцию. Есть ещё такой ORM костыль как Open Session In View, а scope сессии он тоже почти всегда совпадает со scope транзакции. В таких случаях и в контроллере можно использовать @Transactional. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2015, 09:09 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
Blazkowicz Есть ещё такой ORM костыль как Open Session In View, а scope сессии он тоже почти всегда совпадает со scope транзакции. В таких случаях и в контроллере можно использовать @Transactional. а разве так можно делать? нас учили что нужно вытаскивать исключительно то что тебе нужно - и под это писать сразу запросы и DTO VO transfer object итд типа есть сущность персона - а тебе нужно достать только имена и дату рождения - достаешь только их итд ... в том числе чтобы не создавать Open Session In View ... получил в слое репозитария конкретные данне и сразу их отдал на след. уровень абстракции... Open Session In View - зачем он вообще нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2015, 22:24 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
Atum1, Когда проект на jdbc без орм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 07:45 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
Atum1, Или десктоп. Сессия с 9ти утра до 6ти вечера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 07:50 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
Petro123Atum1, Когда проект на jdbc без орм Нет, так тоже нельзя. Потому что пул коннектов вполне может быть и без орм. Petro123Atum1, Или десктоп. Сессия с 9ти утра до 6ти вечера. А тут да, тут иногда можно. Хотя в целом- это плохой приём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 11:31 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
OFF Alexey TominХотя в целом- это плохой приём. "В целом, по больнице - 36,6." А проекты такие есть и будут. Т.к. в корпоративе юзкейс: "Тут я в БД через 3 окна построю объект, а потом закоммичу" решается за пол часа. А без длинной транзакции в БД - за 6 часов. Alexey TominПотому что пул коннектов Для меня главное наличие ОРМ. А наличие пул - технический мелкий вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 11:47 |
|
||
|
В каком месте должна стоять - @Transactional
|
|||
|---|---|---|---|
|
#18+
Atum1а разве так можно делать? Ну, а кто запретит? Народ делает. Atum1нас учили что нужно вытаскивать исключительно то что тебе нужно - и под это писать сразу запросы и DTO VO transfer object итд Да, я тоже об этом в каждой теме пишу. Но в жизни оно не всегда так как мы того хотим. Atum1Open Session In View - зачем он вообще нужен? Костыль же. Зачем нужны костыли? Закрывать косяки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2015, 11:47 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39113864&tid=2124626]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 484ms |

| 0 / 0 |
