Database 如何在EclipseLink/JPA中指定@OneToMany的基数

Database 如何在EclipseLink/JPA中指定@OneToMany的基数,database,jpa,orm,eclipselink,check-constraints,Database,Jpa,Orm,Eclipselink,Check Constraints,我试图强加一个@Oneto7协会。我想象了一个属性,它指定了目标多个值,但没有找到任何值。 如果没有这样的属性,那么在JPA/EclipseLink中如何实现它呢?您可以使用Bean验证API()-Hibernate Validator作为RI-并在您的集合上添加一个大小约束: @Size(min = 7, max = 7) protected Set<Foo> foos = new HashSet<Foo>(); @Size(最小值=7,最大值=7)受保护集foos=

我试图强加一个@Oneto7协会。我想象了一个属性,它指定了目标多个值,但没有找到任何值。
如果没有这样的属性,那么在JPA/EclipseLink中如何实现它呢?

您可以使用Bean验证API()-Hibernate Validator作为RI-并在您的集合上添加一个
大小
约束:

@Size(min = 7, max = 7) protected Set<Foo> foos = new HashSet<Foo>();
@Size(最小值=7,最大值=7)受保护集foos=newhashset();

如果您使用的是JPA 1.0,请查看以下内容,了解如何在JPA 1.0中使用Bean验证。

您可以使用椭圆形库并设置,例如:

@OneToMany(cascade = CascadeType.ALL, mappedBy = "whatevery")
@Size(max = 30)
private List<SuperDocument> documents;
@OneToMany(cascade=CascadeType.ALL,mappedBy=“whatevery”)
@尺寸(最大值=30)
私人清单文件;

下面是进一步验证Oval的文档:

这是一个解决方案。然而,我想继续使用EclipseLink,有什么解决方案吗?@simpatico,嗯?在我的回答中,没有任何东西建议我们放弃日食。我的建议是使用您在JPA提供者旁边使用的Bean验证API。Hibernate Validator是此API的一个实现,它不是EclipseLink的替代品,您可以在EclipseLink旁边使用它。在链接中提供的示例代码中,我阅读了org.Hibernate.ejb.HibernatePersistence,这误导了我。请回答我的相关问题:在答案的代码中,注释被用作:@Size(min=5,max=20)私有字符串作者;当作者在这里最多只有一个时,这意味着什么?无论如何,代码还使用了Validation.buildDefaultValidatorFactory().getValidator().validate(…),这就提出了一个问题:@Size是否不会在DDL SQL中转换?你能发个短信吗?我尝试使用这里发布的示例,使家庭最大尺寸为7。