【问题标题】:Hibernate validation on static inner classes静态内部类的休眠验证
【发布时间】:2014-05-13 22:39:49
【问题描述】:

你不能使用休眠验证来验证静态内部类吗?我有以下表格:

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

【问题讨论】:

  • 不起作用是什么意思?您尝试使用 null someField 验证 someClass 实例并通过了?
  • 是的,正如你所说。
  • 你能给我们一个可重现的小例子吗?这应该有效。

标签: java hibernate validation inner-classes


【解决方案1】:

我明白了,你需要在 someClass 和 someOtherClass 的实例上标记@Valid。这为我解决了这个问题。看起来我在控制器上为我的 Thing 对象添加的 @Valid 注释没有递归地应用于其嵌套对象的状态。

【讨论】:

    【解决方案2】:

    您可以在地址属性上使用@Valid,并结合地址类中的其他约束。一个有效的例子是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      • 2012-11-19
      • 2011-02-11
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      相关资源
      最近更新 更多