2017-12-25 9 views
0

占め、私は非常に単純な疑問を持っている - そのために私は通話会社とサブクラスクライアントサブの取得数は、JPA

public class Company { 
private Long id; 
private String companyName; 
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) 
@JoinColumn(name = "companyID") 
private Set<Client> clients; 
setters .. getters 
} 

を持っているグーグル:)

で解決策を見つけるcould'tどのように私がすることができます

public Company getClientsCount(Long companyID) { 
    Query q = em.createQuery("SELECT c FROM Company c where c.id =:companyID"); 
    q.setParameter("companyID", companyID); 
    return (Company) q.getSingleResult(); 
} 

以降:

会社全体のクラスを取得し、このような何かを書くことなく、クライアントの数を取得します事前にの
int count = company.getCleints().size; 

おかげ

+0

https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#hql-aggregate-functions –

+0

使用回数: 'SELECT COUNT(*)クライアントCから' – jfun

+0

@Terzlyaこれは冗談はいですか? – Irakli

答えて

-1

あなたはSQLで関数に似てJPQL functionを使用することができます。

public Long getClientsCount(Long companyID) { 
    Query q = em.createQuery("SELECT count(c) FROM Company c where c.id =:companyID"); 
    q.setParameter("companyID", companyID); 
    return (Long) q.getSingleResult(); 
} 
関連する問題