2014-09-01 48 views
0

我正在寻找准则来验证父管理资源(AdminResource扩展Spring ResourceSupport类)为非空(@NotEmpty)子管理模块资源(AdminModuleResource扩展了Spring ResourceSupport类)。将Spring ResourceSupported父资源验证为子资源中的非空属性

我明白AdminResource类还应该实现Serializable接口吗?这是Spring ResourceSupport-ed资源的方式吗?

这里是我的资源:

public class AdminResource extends AbstractResource { 

    private String firstname; 
    private String lastname; 
    @NotEmpty 
    @Email 
    private String email; 
    private String password; 
    private String passwordSalt; 

} 

public class AdminModuleResource extends AbstractResource { 

    @NotEmpty 
    private String module; 
    @NotEmpty 
    private AdminResource adminResource; 
} 

public abstract class AbstractResource extends ResourceSupport { 

    @JsonProperty("id") 
    private Long resourceId; 

    public AbstractResource() { 
    } 

    public Long getResourceId() { 
     return resourceId; 
    } 

    public void setResourceId(Long resourceId) { 
     this.resourceId = resourceId; 
    } 

} 

截至目前,该@NotEmpty验证注解给我的错误:没有验证可以为类型找到...

但添加了“实现Serializable “对资源没有帮助,并且在使用@NotEmpty验证器注释时仍然存在异常。

public abstract class AbstractResource extends ResourceSupport implements Serializable { 
} 

当然,评论@NotEmpty验证器注释使Maven构建成功。

感谢您的任何方向提示!

此致

斯蒂芬

回答

1

@NotEmpty仅支持CharSequences(字符串),类别,地图和数组。它要么检查字符串或集合/数组是否为空。它甚至意味着一个AdminResource不是空的。你的意思是@NotNull?

如果确实对于AdminResource具有@NotEmpty的语义意义,则必须为其实施一个自定义ConstraintValidator并通过XML注册它(另请参阅http://beanvalidation.org/1.1/spec/#xml-mapping-constraintdefinition)。

+0

想想空的资源确实没什么意义。我将使用@NotNull注释。 – Stephane 2014-09-01 17:04:23