牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2015-07-15 投稿人: 浏览次数:7889

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

原帖戳这里

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。