0

我收到此错误:

    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 中处理约束)(主要/次要都是正确的)

PwVersions pwv= (PwVersions)em.createQuery("select pwv from PwVersions pwv where 
major= :major and minor = :minor").getSingleResult();

谢谢你

4

1 回答 1

2

此注释很可能引发验证异常:

@javax.validation.constraints.Size(min = 0, max = 45)

放在类的一个属性前面EntityBeans.PwVersions。要摆脱它,要么调整 db 表中字段的长度,要么调整Size注释本身以匹配 db 字段的最大大小(或者如果不需要它,请删除注释完全)。

EJB 异常只是捕获验证异常并重新抛出它,因为您的代码片段放置在 EJB 中。

于 2013-03-01T18:53:32.697 回答