Springをアノテーション部分で読んでいたところ、永続性例外の変換に適格であるという意味でBeanがBeanとは異なるという@Repository
アノテーションに出くわしました。@Repository
@Component
誰かが永続性例外の変換の意味を詳しく説明してもらえますか?
Springをアノテーション部分で読んでいたところ、永続性例外の変換に適格であるという意味でBeanがBeanとは異なるという@Repository
アノテーションに出くわしました。@Repository
@Component
誰かが永続性例外の変換の意味を詳しく説明してもらえますか?
永続性例外の変換は、低レベルの永続性例外を高レベルのSpring例外に変換するプロセスです。
SpringSourceサイトから:
一般的なデータアクセスの例外。Springは、選択したO / Rマッピングツールからの例外をラップして、プロプライエタリ(チェックされる可能性がある)例外から一般的なランタイムDataAccessException階層に変換できます。これにより、ボイラープレートのキャッチ/スローや例外宣言を煩わせることなく、適切なレイヤーでのみ回復不可能なほとんどの永続性例外を処理できます。必要な場所であればどこでも例外をトラップして処理できます。JDBC例外(DB固有の方言を含む)も同じ階層に変換されることに注意してください。つまり、一貫性のあるプログラミングモデル内でJDBCを使用して一部の操作を実行できます。
これの主な利点の1つは、例外がランタイム例外に変換されることです。実際には、メソッドのシグネチャに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ポストプロセッサBeanを定義することにより、@Repositoryで注釈が付けられたすべてのBeanに透過的に適用できます。