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;
}