我收到此错误:
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();
谢谢
最佳答案
该注释很可能引发验证异常:
@javax.validation.constraints.Size(min = 0, max = 45)
放在类
EntityBeans.PwVersions
的属性前面。要摆脱它,可以调整db表中字段的长度,或者调整Size注释本身以匹配db字段的最大大小(如果不这样做,则删除注释完全需要它)。EJB异常只是捕获验证异常并将其重新抛出,因为您的代码段位于EJB中。