これら3つのアノテーションの違いを区別する要約を見つけることができないようです。
これら3つのアノテーションの違いを区別する要約を見つけることができないようです。
回答:
@NotNull:CharSequence、Collection、Map、またはArrayオブジェクトはnullではありませんが、空にすることができます。
@NotEmpty:CharSequence、Collection、Map、またはArrayオブジェクトはnullではなく、サイズ> 0です。
@NotBlank:文字列はnullではなく、トリミングされた長さはゼロより大きいです。   
理解を助けるために、これらの制約がどのように定義され、実行されるかを見てみましょう(私はバージョン4.1を使用しています):
@NotNull制約は次のように定義されています。  
@Constraint(validatedBy = {NotNullValidator.class})  このクラスには、isValid次のように定義されたメソッドがあります。  
public boolean isValid(Object object, ConstraintValidatorContext constraintValidatorContext) {
 return object != null;  
}@NotEmpty制約は次のように定義されています。  
@NotNull  
@Size(min = 1)    だから、この制約は使用@NotNull上の制約、および @Sizeその定義が異なったオブジェクトに基づいていますが、自己explanitoryでなければなりませんが。  
最後に、@NotBlank制約は次のように定義されます。  
@NotNull  
@Constraint(validatedBy = {NotBlankValidator.class})        したがって、この制約でも@NotNull制約が使用されますが、NotBlankValidatorクラスでも制約されます。このクラスには、isValid次のように定義されたメソッドがあります。     
if ( charSequence == null ) {  //curious 
  return true;   
}   
return charSequence.toString().trim().length() > 0;  興味深いことに、このメソッドは、文字列がnullの場合はtrueを返しますが、トリミングされた文字列の長さが0の場合にのみfalseを返します。前述のように、@NotEmpty定義でもが必要なため、nullの場合はtrueを返します@NotNull。  
以下にいくつかの例を示します。
文字列名= null; 
    @NotNull:false 
    @NotEmpty:false 
    @NotBlank:false  
文字列名= ""; 
    @NotNull:true
    @NotEmpty:false 
    @NotBlank:false  
文字列名= ""; 
    @NotNull:true
    @NotEmpty:true
    @NotBlank:false    
文字列名= "すばらしい答え!"; 
    @NotNull:true
    @NotEmpty:true
    @NotBlank:true 
以下のリンクの説明が気に入りました:http : //www.itprogrammingtutorials.com/2015/java/hibernate/hibernate-validator-diff-notblank-notempty/
@NotNull:内容を無視して、値がnullでないかどうかをチェックします
@NotEmpty:値がnullでも空でもないかどうかをチェックします。空のスペースしかない場合は、空でないことを許可します。
@NotBlank:値がnullでも空でもないかどうかをチェックし、最初に値をトリミングします。つまり、空のスペースだけを許可するわけではありません。
したがって、フィールドがnullではなく、空のスペースだけではなくテキストであることを検証する場合は、@ NotBlankを使用する必要があります。
@NotNull: 制約されたCharSequence、Collection、Map、またはArrayは、nullでない限り有効ですが、空でもかまいません@NotEmpty: 制約されたCharSequence、Collection、Map、またはArrayは、nullでなく、サイズ/長さがゼロより大きい限り有効です。@NotBlank: 制約された文字列は、それがnullでなく、トリムされた長さがゼロより大きい限り有効です。