現在、春に作成したデータアクセス層をテストしています(PersistenceContextが挿入されています)。したがって、データベースにデータを挿入/削除/更新するUserServiceなどのサービスを呼び出すステートレスEJBがあります。
サービスは正常に動作し、データベースを挿入できました。しかし、テストしていて、設定した長さよりも長い文字列値を入力したとき、次のようになりました。
javax.transaction.RollbackException: Transaction marked for rollback.
WARNING: DTX5014: Caught exception in beforeCompletion() callback:
javax.persistence.PersistenceException: org.hibernate.exception.DataException: ERROR: value too long for type character varying(20)
Caused by: org.hibernate.exception.DataException: ERROR: value too long for type character varying(20)
Caused by: org.hibernate.exception.DataException: ERROR: value too long for type character varying(20)
私の部分的なコード:
@PersistenceContext
protected EntityManager entityManager;
try {
entityManager.persist(e);
} catch(Exception e) {
//log message here
}
次に、これらのエラーをキャッチするためにすべてを試しましたが、できませんでした。問題を解決する方法について何か提案はありますか?
ありがとう、
czetsuya