特定的Java EJB约束冲突错误。为什么?
我收到这个错误:特定的Java EJB约束冲突错误。为什么?,java,jpa-2.0,bean-validation,Java,Jpa 2.0,Bean Validation,我收到这个错误: javax.ejb.EJBException: javax.validation.ConstraintViolationException: Validation failed for classes [EntityBeans.PwVersions] during update time for groups [javax.validation.groups.Default, ] List of constraint violations: [ ConstraintV
javax.ejb.EJBException: javax.validation.ConstraintViolationException: Validation
failed for classes [EntityBeans.PwVersions] during update time for groups
[javax.validation.groups.Default, ] List of constraint violations:
[ ConstraintViolationImpl{interpolatedMessage='size must be between 0 and 45',
propertyPath=directory, rootBeanClass=class EntityBeans.PwVersions, messageTemplate='{javax.validation.constraints.Size.message}'} ]
在运行时,我很沮丧。当我尝试将查询结果强制转换为PwVersions对象时,就会出现问题。我需要使用下面的代码行(或等效代码),所以我想知道我需要在其他地方更改什么(除了更改数据库)才能使其工作?也许有一种方法可以改变被违反的约束(我不熟悉用Java处理约束)
(大调/小调都正确)
谢谢验证异常很可能是由此批注引发的:
@javax.validation.constraints.Size(min = 0, max = 45)
放置在类EntityBeans.PwVersions
的属性前面。若要删除它,请调整db表中字段的长度,或调整注释本身以匹配db字段的最大大小(如果根本不需要注释,请删除注释)
EJB异常只是捕获验证异常并重新引用它,因为您的代码片段放在EJB中。请显示PwVersions实体。是的!我刚刚计算出来,而且在数据库中,列的类型是:VARCHAR2(45字节)Thanx!
@javax.validation.constraints.Size(min = 0, max = 45)