我是struts和Hibernate的新手。我正在开发一个用户填写表单的Web应用程序。我必须在某些字段上进行一些验证,我试图在某些字段中使用POJO类中的验证。
与@Past on Date
,@Max on int
一样。
但它没有正常工作并抛出这些例外。
HTTP Status 500 validation
failed for: com.contact.ContactRegistration
type Exception report
message validation failed for: com.contact.ContactRegistration
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.hibernate.validator.InvalidStateException: validation failed for: com.contact.ContactRegistration
org.hibernate.validator.event.ValidateEventListener.validate(ValidateEventListener.java:148)
org.hibernate.validator.event.ValidateEventListener.onPreInsert(ValidateEventListener.java:172)
org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:119)
org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:42)
org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
我已经加入了这些罐子。
classmate-1.0.0
hibernate-validator.jar
jboss-logging-3.1.0-CR2
validation-api-1.1.0.Final
答案 0 :(得分:1)
当您尝试保留对象时,将执行Hibernate验证。异常堆栈跟踪显示您正在Hibernate会话中保存瞬态实例。
它会抛出异常,因为要验证的对象具有无效值。该例外允许您回滚当前事务。
您的代码可以捕获org.hibernate.validator.InvalidStateException
以获取发生错误的一些信息。它有一个方法getInvalidValues()
,它返回验证错误。