在Hibernate Validator 4.1+中,@NotNull, @NotEmpty和@NotBlank之间的区别是什么?

来源:互联网 发布:取消淘宝账号实名认证 编辑:程序博客网 时间:2024/06/10 01:28

Apr 8, 2014 2:13:57 PM org.apache.catalina.core.StandardWrapperValve invoke  SEVERE: Servlet.service() for servlet springmvc threw exception  javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Integer      at org.hibernate.validator.engine.ConstraintTree.verifyResolveWasUnique(ConstraintTree.java:383)      at org.hibernate.validator.engine.ConstraintTree.findMatchingValidatorClass(ConstraintTree.java:364)      at org.hibernate.validator.engine.ConstraintTree.getInitializedValidator(ConstraintTree.java:313)      at org.hibernate.validator.engine.ConstraintTree.validateConstraints(ConstraintTree.java:144)      at org.hibernate.validator.engine.ConstraintTree.validateComposingConstraints(ConstraintTree.java:233)      at org.hibernate.validator.engine.ConstraintTree.validateConstraints(ConstraintTree.java:128)      at org.hibernate.validator.engine.ConstraintTree.validateConstraints(ConstraintTree.java:117)      at org.hibernate.validator.metadata.MetaConstraint.validateConstraint(MetaConstraint.java:84)      at org.hibernate.validator.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:452)  


使用hibernate validator出现上面的错误, 需要 注意


如果在基本类型上面用NotEmpty或者NotBlank 会出现上面的错


  1. @NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0)。  
  2. @NotEmpty://CharSequence, Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0。  
  3. @NotBlank://String 不是 null 且去除两端空白字符后的长度(trimmed length)大于 0。  

  1. String name = null;
    @NotNull: false
    @NotEmpty: false
    @NotBlank: false

  2. String name = "";
    @NotNulltrue
    @NotEmpty: false
    @NotBlank: false

  3. String name = " ";
    @NotNulltrue
    @NotEmptytrue
    @NotBlank: false

  4. String name = "Great answer!";
    @NotNulltrue
    @NotEmptytrue
    @NotBlanktrue

原帖戳这里

0 0
原创粉丝点击