Bean 验证 - JSR-303 DuplicateItemCheck for a list in java

Bean Validation - JSR-303 DuplicateItemCheck for a list in java

在 java 中是否有任何标准的 bean 验证注释来检查集合中的重复项。 或任何人实施自定义验证以使用 bean 验证检查列表中的重复项。

例如



    public class MySecurityRequest{
        private Date dob;

        @DuplicateNotAllowed
        private List securityQuestions;
    }

    public class SecurityQuestion{
      private String question;
      private String answer;
    }

这里我需要确认一下,列表中的问题没有重复。 有人面临这个类似的问题吗?

使用套装。并在您的 SecurityQuestion class 上覆盖并实施 hashcode() 和 equals() 方法,以帮助 Set 识别重复项。

你问啊搞笑啊。我们刚刚将 @UniqueElements 注释添加到 Hibernate Validator(今天合并了 PR - https://github.com/hibernate/hibernate-validator/pull/879)。

它将成为我们计划明天发布的 6.0.5.Final 的一部分。

请注意,它不是标准约束(即它不在 Bean 验证中),但开箱即用的 HV 将支持它。

您应该可以将 HV 6 与 Spring 一起使用:它应该是兼容的。请注意您的依赖项(您不能在依赖项中同时拥有两个版本 - HV 5 和 6 的组 ID 不同 - 还要注意 javax.el 依赖项 - 请参阅 https://github.com/hibernate/hibernate-validator#using-hibernate-validator 了解详情)。