【问题标题】:Validating a Spring ResourceSupport-ed parent resource as a not empty property in a child resource将 Spring ResourceSupport-ed 父资源验证为子资源中的非空属性
【发布时间】:2014-09-01 05:57:11
【问题描述】:

我正在寻找在子管理模块资源(扩展 Spring ResourceSupport 类的 AdminModuleResource)中验证父管理资源(扩展 Spring ResourceSupport 类的 AdminResource)不为空 (@NotEmpty) 的指南。

我了解 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 验证器注释给了我错误:No validator could be found for type...

但是将“实现可序列化”添加到资源并没有帮助,并且在使用 @NotEmpty 验证器注释时仍然存在异常。

public abstract class AbstractResource extends ResourceSupport implements Serializable {
}

当然,注释掉 @NotEmpty 验证器注解会使 Maven 构建成功。

感谢任何方向提示!

亲切的问候,

斯蒂芬

【问题讨论】:

    标签: rest hibernate-validator spring-hateoas


    【解决方案1】:

    @NotEmpty 仅支持 CharSequences (String)、Collections、Maps 和数组。它要么检查字符串或集合/数组是否为空。 AdminResource 不为空是什么意思。你是说@NotNull 吗?

    如果为 AdminResource 设置 @NotEmpty 确实在语义上有意义,那么您必须为其实现自定义 ConstraintValidator 并通过 XML 注册它(另请参阅 http://beanvalidation.org/1.1/spec/#xml-mapping-constraintdefinition)。

    【讨论】:

    • 考虑空资源确实没有多大意义。我将改用@NotNull 注释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    相关资源
    最近更新 更多