【问题标题】:How to enforce a validation constraint on an Embeddable entity property?如何对可嵌入实体属性实施验证约束?
【发布时间】:2012-12-21 14:26:18
【问题描述】:

我有一个带有电子邮件集合属性的 Person 实体:

@ElementCollection
@CollectionTable(schema="u",name="emails",joinColumns=@JoinColumn(name="person_fk"))
@AttributeOverrides({
    @AttributeOverride(name="email",column=@Column(name="email",nullable=false)),
})
public List<EmailU> getEmails() {
    return emails;
}

在我的电子邮件课程中,我尝试使用 @Email 注释电子邮件:

@Embeddable
public class EmailU implements Serializable {
    private String email;

    public EmailU(){
    }

    @Email
    public String getEmail() {
        return email;
    }
}

但它不起作用。我应该怎么做?

【问题讨论】:

    标签: java hibernate validation annotations hibernate-mapping


    【解决方案1】:

    @Valid 注释添加到您的集合属性。这会触发您的验证提供程序来验证集合中的每个项目,然后它将调用您的 @Email 验证器。

    @Valid
    @ElementCollection
    @CollectionTable(schema="u",name="emails",joinColumns=@JoinColumn(name="person_fk"))
    @AttributeOverrides({
        @AttributeOverride(name="email",column=@Column(name="email",nullable=false)),
    })
    public List<EmailU> getEmails() {
        return emails;
    }
    

    注释文档:http://docs.oracle.com/javaee/6/api/javax/validation/Valid.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多