JPA / Hibernate OneToMany不可为空约束

时间:2015-04-16 11:47:43

标签: java hibernate jpa

我有一个与其子节点具有多对多关系的父实体。但是我有一个约束,即父母必须至少有一个孩子。我们如何用JPA / Hibernate注释来描述它?

@Entity
public class Parent {
    //parent must have at least 1 Child
    @ManyToMany
    private Set<Child> children    
}

目前,我正在考虑使用拦截器,如下所示:

@PrePersist
@PreUpdate
private validate() {
    if(children.size() < 1) 
      throw new PersistenceException()
}

或者可能在服务层处理此问题。

1 个答案:

答案 0 :(得分:1)

尝试使用Hibernate Validator,它使用JSR 303并且也被解释为数据库验证。 因此,您可以使用@NotEmpty批注进行验证,如下所示:

 @ManyToMany
 @NotEmpty
    private Set<Child> children