Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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_Validation_Hibernate Validator - Fatal编程技术网

Java验证:验证对象中的对象

Java验证:验证对象中的对象,java,validation,hibernate-validator,Java,Validation,Hibernate Validator,我有两个目标: public class CancelRequest{ @NotEmpty private String id; @NotNull private BookingDetails; } BookingDetails对象: public class BookingDetails{ @NotEmpty private String bookingId; } 负责验证请求的类是CancelRequestValidator ... import javax.validat

我有两个目标:

public class CancelRequest{
 @NotEmpty
 private String id;

 @NotNull
 private BookingDetails;
}
BookingDetails对象:

public class BookingDetails{
 @NotEmpty
 private String bookingId;
}
负责验证请求的类是
CancelRequestValidator

...
import javax.validation.Validator;
...
public class CancelRequestValidator{
...
public void check(CancelRequest request){
 Set<ConstraintViolation<NorthAmericaCancelTripRequest>> violations = 
validator.validate(request);
...
 }
}
冲突应该有一个条目,说明bookingId不能为空,但它认为对象有效。我需要以这种方式进行验证,因为我需要对这个对象执行一些其他的业务验证,因此我使用javax和自定义验证的混合


感谢执行嵌套bean验证,您需要在嵌套对象上使用
@Valid
注释:

public class CancelRequest{
  @NotEmpty
  private String id;

  @NotNull
  @Valid
  private BookingDetails;
}

正如Eamon Scullion所说,@Valid将用于嵌套验证,但不要忘记对Date等对象使用@NotNull,@NotBlank用于文本字段,@NotEmpty用于Iterable对象

public class CancelRequest{
    @NotBlank
    private String id;
    

    @NotEmpty
    private List<E> myList;

    @NotNull
    @Valid
    private BookingDetails;
}
公共类取消请求{
@不空白
私有字符串id;
@空空如也
私人名单;
@NotNull
@有效的
私人订票详情;
}
public class CancelRequest{
    @NotBlank
    private String id;
    

    @NotEmpty
    private List<E> myList;

    @NotNull
    @Valid
    private BookingDetails;
}