Hatena::ブログ(Diary)

yomamaのdev日記 (from jemomo) このページをアンテナに追加 RSSフィード

2007-08-02

Spring+Hibernate連携時の主なExceptionまとめ 20:03 Spring+Hibernate連携時の主なExceptionまとめを含むブックマーク Spring+Hibernate連携時の主なExceptionまとめのブックマークコメント

HibernateをSpringで動かすと、Hibernateで発生したExceptionをSpringが変換して投げてくれる。


Hibernate

  • PK検索でデータが存在しなかった場合
  • 登録、更新時に一意制約違反がおきた場合
    • org.hibernate.exception.ConstraintViolationException
  • 更新、削除時に楽観的ロック例外が発生した場合、または対象データが存在しなかった場合

上記のExceptionが以下のExceptionに変換される。


Spring

  • PK検索でデータが存在しなかった場合
    • org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException
  • 登録、更新時に一意制約違反がおきた場合
    • org.springframework.dao.DataIntegrityViolationException
  • 更新、削除時に楽観的ロック例外が発生した場合、または対象データが存在しなかった場合
    • org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException

以下のように親クラスで捕らえれば、Hibernate以外の各種ORマッパーの例外も統一して扱うことができる。


SpringでHibernateだけに依存しないで捕らえる型

  • PK検索でデータが存在しなかった場合
    • org.springframework.dao.DataRetrievalFailureException
  • 登録、更新時に一意制約違反がおきた場合
    • org.springframework.dao.DataIntegrityViolationException
  • 更新、削除時に楽観的ロック例外が発生した場合、または対象データが存在しなかった場合
    • org.springframework.dao.OptimisticLockingFailureException

上記すべてRuntimeExceptionです。

try〜catch、throwsが必要なExceptionは、近頃流行らないのでしょうか?

C#にもRuntimeExceptionしかないみたいだし。


Connection: close