churaを試してみる その2
先日の日記にて
# suga 『>エラーメッセージ
その cause までたどれば JDBC Driver のメッセージが出ていませんか』
とコメントしていただいたので、試してみた。
DeptConfirmPage#doFinish()を以下のように変更。
@TakeOver(type = TakeOverType.NEVER) public String doFinish() { try { switch(getCrudType()) { case CrudType.CREATE: getDeptDao().insert(getDeptDxo().convert(this)); break; case CrudType.UPDATE: getDeptDao().update(getDeptDxo().convert(this)); break; case CrudType.DELETE: getDeptDao().delete(getDeptDxo().convert(this)); break; default: break; } } catch (SQLRuntimeException e) { e.getCause().getCause().printStackTrace(); } return "deptList"; }
実行したときにでるスタックトレースはこうなった。
java.sql.SQLException: Unique constraint violation: in statement [INSERT INTO DEPT (ID, DEPTNO, DNAME, LOC, VERSIONNO) VALUES (?, ?, ?, ?, ?)]
ちゃんと出るようになりました(^^)
-
-
- -
-
getCause()というメソッドを初めて知りました。e.getCause().getCause()としているのは、SQLRuntimeException < SRuntimeException < SRuntimeExceptionというクラス階層になっているため、だと思ってます。