Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对可嵌入实体属性强制执行验证约束?_Java_Hibernate_Validation_Annotations_Hibernate Mapping - Fatal编程技术网

Java 如何对可嵌入实体属性强制执行验证约束?

Java 如何对可嵌入实体属性强制执行验证约束?,java,hibernate,validation,annotations,hibernate-mapping,Java,Hibernate,Validation,Annotations,Hibernate Mapping,我有一个具有电子邮件收集属性的个人实体: @ElementCollection @CollectionTable(schema="u",name="emails",joinColumns=@JoinColumn(name="person_fk")) @AttributeOverrides({ @AttributeOverride(name="email",column=@Column(name="email",nullable=false)), }) public List<Ema

我有一个具有电子邮件收集属性的个人实体:

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

但它不起作用。我的方法应该是什么?

在集合属性中添加一个
@Valid
注释。这将触发验证提供程序验证集合中的每个项目,然后调用您的
@电子邮件
验证程序

@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;
}
@有效
@元素集合
@CollectionTable(schema=“u”、name=“emails”、joinColumns=@JoinColumn(name=“person\u fk”))
@属性溢出({
@AttributeOverride(name=“email”,column=@column(name=“email”,nullable=false)),
})
公共列表getEmails(){
回复邮件;
}
注释文档:

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