JPA命名查询以获取集合的大小

时间:2012-03-29 17:43:19

标签: java jpa named

我有以下两个实体:

@Entity
class Relation{

@ManyToOne
private User user;

//some other fields

...
}

用户实体拥有其他实体的集合:

@Entity
class User {

@OneToMany(mappedBy="user")
private Collection<Address> addresses = new ArrayList<Address>();
}

//some other fields

}

是否可以在Relation实体中编写一个命名查询,它为我提供了超过2个地址的用户......? 喜欢:

@NamedQuery("SELECT m from Membership m where m.otherfield = ?1 AND m.user.addresses > 2")

换句话说,如何通过命名查询获取此实体的大小?

THX

1 个答案:

答案 0 :(得分:4)

在JPQL查询中,SIZE函数可用于获取集合的大小。它将集合的路径作为参数并返回元素的数量。