2012-03-29 71 views
2

我有以下两个实体:JPA命名查询来获得尺寸的集合

@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

为什么不使用'SELECT COUNT(m)from ....'? – Osw 2012-03-29 17:47:15

回答

3

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