Size: a a a

Java/Kotlin and more

2021 May 14

В

Влад in Java/Kotlin and more
мы тестили, у меня к сожалению не откатывалась
источник

В

Влад in Java/Kotlin and more
да! у нас в rollbackFor=Exception.class
источник

В

Влад in Java/Kotlin and more
может изза этого
источник

C

Cyclone in Java/Kotlin and more
По умолчанию чекед эксепшены транзакцию не откатывают. На эту тему стоит почитать.
источник

В

Влад in Java/Kotlin and more
спасибо, не знал
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
смотря над чем - над ним))

над методом saveAndFlush() или над методом, из которого вызывается saveAndFlush()
источник

В

Влад in Java/Kotlin and more
нет, над классом поставлена аннотация
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
просто над saveAndFlush так-то тоже есть @Transactional

так что если транзакцию раньше не открыть, то точно не откатится.
а если транзакция открылась раньше вызова данного метода, то получится "вложенная транзакция", что по факту будет noop, и закроется она в момент закрытия самой внешней.

и да, там есть очень неприятный сюрприз в виде чекед-эксепшенов, о котором писали выше. хоть и давно работаю с JPA и spring-transactional, но периодически на него попадаюсь, т.к. на практике чекед-эксепшены используются редко, а когда все таки раз в год используются - об этой особенности можно и забыть уже.
источник

RZ

Roman Zinchuk in Java/Kotlin and more
не видел код, но помню, что если транзакционный метод вызывает метод внутри того же класса, то транзакция работает криво ввиду невозможности проксирования такого вызова
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
не будет она криво работать, просто второй метод вызовется без прокси и все аннотации на нем грубо говоря проигнорируются. но внешняя транзакция от этого криво работать не начнет.
источник

RZ

Roman Zinchuk in Java/Kotlin and more
да, точно
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Если конечно не инструментировать через aspectj)
источник

RZ

Roman Zinchuk in Java/Kotlin and more
Проще через self ссылку на класс
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
чем проще то?)
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
это дичайший костыль из-за кривой архитектуры)
источник

АВ

Алексей Васин... in Java/Kotlin and more
всем привет, если я испольую аспект навешанный на реактивном ресте(webflux) и proceedMethod возвращает object а не Mono<Object>, такой подход считается нормальным? или лучше все таки в обертке возвращать?
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
если посмотришь на фактический тип отладчиком, то там будет моно
источник

АВ

Алексей Васин... in Java/Kotlin and more
отлично, то есть сильно это ни на что не повлияет, спасибо!
источник

RZ

Roman Zinchuk in Java/Kotlin and more
пробовал я как-то инструментировать, были траблы с этим
источник

В

Влад in Java/Kotlin and more
а как поменять очередность hibernate операций?
источник