我目前正在测试我在 spring 中创建的数据访问层(注入了 PersistenceContext)。所以我有一个无状态的 EJB,它调用一个服务,例如 UserService,它在数据库中插入/删除/更新数据。
该服务工作正常,我能够插入数据库。但是当我在测试并且我输入的字符串值比我得到的设定长度长时:
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