Я работаю над разработкой веб-приложения с Spring 3 и Hibernate 3.6. У меня есть несколько вопросов к аннотации @Transactional
и структуре кода.
-> Когда я использую @Transactional
(управление транзакциями с помощью Spring), должен ли я окружать @Transactional
-аннотированные методы с помощью try / catch при их вызове?
Например, когда я получил метод, который загружает, изменяет и возвращает объект, я вызываю его из другого класса: я должен окружать звонок с помощью try / catch? может что-то пойдет не так, объект не возвращается, соединение с базой данных не работает .. Я не знаю.
до сих пор я думал, что @Transactional
заботится обо всех возможных исключениях и откатывает каждую операцию в этой транзакции, когда возникает ошибка.
но если это произойдет, я должен как-то проинформировать пользователя. когда я вызываю транзакционный метод в блоке try, и он откатывается, блок catch активируется?
Тогда я могу сказать пользователю, что «что-то пошло не так». В противном случае пользователь может быть не проинформирован?
Или достаточно проверить, был ли возвращен объект (if / else), тогда мне не нужно пытаться / поймать? Я новичок и хотел бы услышать, как другие структурируют свой код. Спасибо: -)