静态内部类的Hibernate验证

时间:2014-05-13 22:39:49

标签: java hibernate validation inner-classes

你能不能使用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;
    }
}

2 个答案:

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