Hibernate, Spring, @Transactional - окружить try / catch?

Я работаю над разработкой веб-приложения с Spring 3 и Hibernate 3.6. У меня есть несколько вопросов к аннотации @Transactional и структуре кода.

-> Когда я использую @Transactional (управление транзакциями с помощью Spring), должен ли я окружать @Transactional -аннотированные методы с помощью try / catch при их вызове?

Например, когда я получил метод, который загружает, изменяет и возвращает объект, я вызываю его из другого класса: я должен окружать звонок с помощью try / catch? может что-то пойдет не так, объект не возвращается, соединение с базой данных не работает .. Я не знаю.

до сих пор я думал, что @Transactional заботится обо всех возможных исключениях и откатывает каждую операцию в этой транзакции, когда возникает ошибка. но если это произойдет, я должен как-то проинформировать пользователя. когда я вызываю транзакционный метод в блоке try, и он откатывается, блок catch активируется? Тогда я могу сказать пользователю, что «что-то пошло не так». В противном случае пользователь может быть не проинформирован?

Или достаточно проверить, был ли возвращен объект (if / else), тогда мне не нужно пытаться / поймать? Я новичок и хотел бы услышать, как другие структурируют свой код. Спасибо: -)

6
задан Sean Patrick Floyd 21 March 2011 в 15:33
поделиться