我可以使用JPA按子女数

时间:2016-11-30 09:52:57

标签: hibernate jpa eclipselink jpa-2.0

我有一个父类,其中属性children作为一对多关系。在构建这个例子时,我假设一个孩子只能有一个父母: - )

public class Parent {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(updatable = false, nullable = false, insertable = false, unique = true)
private Long id;

private String name;

@OneToMany(mappedBy = "parent")    
private Set<Child> children;

}

public class Child {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(updatable = false, nullable = false, insertable = false, unique = true)
private Long id;


private String name;

@ManyToOne
private Parent parent;

}

但是现在我想过滤只有2个孩子的父母。 我可以用什么JPA功能来实现它?

一位同事建议将一个childrenCounter添加到父母。但我不喜欢这种可能性,因为每次我在父母和/或子网站上更改内容时我都必须更新此计数器。

1 个答案:

答案 0 :(得分:2)

很简单。您需要以下JPQL查询:

select p
from Parent p
where size(p.children) = 2