Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在应用自定义之前,请检查字段是否已违反某些规则_Java_Hibernate Validator - Fatal编程技术网

Java 在应用自定义之前,请检查字段是否已违反某些规则

Java 在应用自定义之前,请检查字段是否已违反某些规则,java,hibernate-validator,Java,Hibernate Validator,我有我的自定义验证注释和它的验证器。我不想做的是,仅当字段不违反其他REST说明时才应用此自定义验证器。假设以下代码 class MyClass { @NotNull @Size(min = 10, max = 20) @MyCustomVlidatorAnnotation private String field; } 我只想在字段不为空且大小在[10,20]范围内时应用自定义验证器,否则跳过我的自定义验证器这可以使用@javax.validation.GroupSequ

我有我的自定义验证注释和它的验证器。我不想做的是,仅当字段不违反其他REST说明时才应用此自定义验证器。假设以下代码

class MyClass {

  @NotNull
  @Size(min = 10, max = 20)
  @MyCustomVlidatorAnnotation
  private String field;

}

我只想在
字段
不为空且大小在[10,20]范围内时应用自定义验证器,否则跳过我的自定义验证器

这可以使用
@javax.validation.GroupSequence
完成

@GroupSequence({ javax.validation.groups.Default.class, SecondPriorityCheck.class })
public interface ValidationSequence {

}

class MyClass {

  @NotNull                       // by default belongs to group Default
  @Size(min = 10, max = 20)      // same here
  @MyCustomVlidatorAnnotation(groups =  SecondPriorityCheck.class) 
  private String field;

}
然后您必须使用
ValidationSequence

javax.validation.Validator validator = ..
MyClass instance = ..
validator.validate(instance, ValidationSequence.class)

您可以在这里找到示例

这可以使用
@javax.validation.GroupSequence
完成

@GroupSequence({ javax.validation.groups.Default.class, SecondPriorityCheck.class })
public interface ValidationSequence {

}

class MyClass {

  @NotNull                       // by default belongs to group Default
  @Size(min = 10, max = 20)      // same here
  @MyCustomVlidatorAnnotation(groups =  SecondPriorityCheck.class) 
  private String field;

}
然后您必须使用
ValidationSequence

javax.validation.Validator validator = ..
MyClass instance = ..
validator.validate(instance, ValidationSequence.class)

您可以在此处找到示例

您可以尝试对约束进行排序,检查@user12176589,但如何在自定义验证器中检查以前的约束是否已违反?您可以尝试对约束进行排序,检查@user12176589,但如何在自定义验证器中检查以前的约束是否已违反?