验证JAVA不存在_Hibernate Validator异常“找不到类型为java.lang.String的验证器。”

我使用Spring和Spring MVC 3.1,Hibernate 3,Hibernate Validator 4.3。

我想添加我的自定义约束验证器,但似乎未调用我的验证器,并且总是收到“找不到类型的验证器”异常。我有没有犯错?我总是遇到这个异常的大问题

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.String.

at org.hibernate.validator.internal.engine.ConstraintTree.verifyResolveWasUnique(ConstraintTree.java:394)

at org.hibernate.validator.internal.engine.ConstraintTree.findMatchingValidatorClass(ConstraintTree.java:375)

但是,如果我删除了自定义约束验证器,一切都会很好。这是我的代码,您能帮忙找到导致此异常的原因吗?

test.constraint.ActorConstraint

@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Constraint(validatedBy=ActorConstraintValidator.class)

public @interface ActorConstraint {

String message() default "Actor already exists in database";

public abstract Class>[] groups() default {};

public abstract Class extends Payload>[] payload() default {};

}

test.constraint.ActorConstraintValidator

@Component

public class ActorConstraintValidator implements ConstraintValidator {

@Autowired

private ActorModel actorModel;

@Override

public void initialize(ActorConstraint arg0) {

System.out.println("ActorConstraintValidator is initialized");

}

@Override

public boolean isValid(Actor actor, ConstraintValidatorContext context) {

boolean pass = true;

if (getActorModel().isActorExist(actor.getName()) ){

pass = false;

}

return pass;

}

public ActorModel getActorModel() {

return actorModel;

}

public void setActorModel(ActorModel actorModel) {

this.actorModel = actorModel;

}

}

test.entity.Actor

@Entity /*(findByName named query definition is omitted)*/

public class Actor implements Serializable {

public static final String NAMED_QUERY__FIND_ACTOR_BY_NAME = "findActorByName";

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

@ActorConstraint

@NotEmpty

private String name;

@DateTimeFormat(iso=ISO.DATE)

private Date birthday;

@Min(0)

@Max(300)

private Integer height;

...

}

特别说明,我已添加

弹簧xml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值