你能不能使用hibernate验证来验证静态内部类?我有以下表格:
public class Thing {
@NotNull // WORKS!
private String message;
private someClass obj1;
private someOtherClass obj2;
public static class someClass
{
@NotNull //DOES NOT WORK
private String someField;
}
public static class someOtherClass
{
@NotNull //Does NOT WORK
private String someOtherField;
}
}
答案 0 :(得分:3)
我明白了,你需要在someClass和someOtherClass的实例上标记@Valid。这为我解决了这个问题。看起来我的控制器上的@Valid注释因为我的Thing对象没有递归地应用于其嵌套对象的状态。
答案 1 :(得分:1)
您可以在Address属性中使用@Valid,同时使用Address类中其他约束的组合。一个有效的例子是:
public class Person {
@NotEmpty
private String fullName;
@Email
private String email;
@Pattern (regexp = "[0-9]+")
private String telNo;
@NotNull
@Valid
private Address address;
}
class Address {
@NotEmpty
private String houseNumber;
@NotEmpty
private String streetName;
private String province;
private String country;
}