Что такое "перевод исключения персистентности" для бобов @Repository
Я читал Spring с аннотацией, и я наткнулся @Repository
аннотирование
Я прочитал это @Repository
бобы отличаются от @Component
бобы в том смысле, что они имеют право на постоянное исключение перевода.
Может кто-нибудь уточнить, что подразумевается под переводом постоянных исключений?
3 ответа
Перевод исключений постоянства - это процесс преобразования исключений постоянства низкого уровня в исключения высокого уровня Spring.
С сайта SpringSource:
Общие исключения доступа к данным. Spring может обернуть исключения из выбранного вами средства отображения O/R, преобразовав их из проприетарных (потенциально проверенных) исключений в общую иерархию времени выполнения DataAccessException. Это позволяет вам обрабатывать большинство постоянных исключений, которые невозможно восстановить, только на соответствующих слоях, без назойливых сборок / бросков и объявлений об исключениях. Вы все еще можете перехватывать и обрабатывать исключения везде, где вам нужно. Помните, что исключения JDBC (включая определенные диалекты БД) также преобразуются в ту же иерархию, что означает, что вы можете выполнять некоторые операции с JDBC в рамках согласованной модели программирования.
Одним из основных преимуществ этого является то, что исключения превращаются в исключения времени выполнения, по сути, вам не нужно добавлять объявление throws в сигнатуру ваших методов.
http://static.springsource.org/spring/docs/2.5.x/reference/orm.html
Он обеспечивает согласованную иерархию исключений независимо от типа используемой базы данных или методологии / технологии постоянства.
Вы получаете те же исключения для тех же типов ошибок, независимо от того, используете ли вы Oracle против MySQL или JPA против JDBC.
Взгляните на SQLErrorCodeSQLExceptionTranslator и sql-error-codes.xml.
sql-error-codes.xml
Это особенно интересно, поскольку вы можете видеть все различные коды ошибок, относящиеся к конкретному поставщику, и какие исключения в иерархии они отображают.
Механизм преобразования исключений Spring может быть применен прозрачно ко всем bean-компонентам, аннотированным @Repository - путем определения bean-компонента bean-объекта обработки исключения в Context.