@ Frecvența contorului de frecvență

Am o proprietate "tag-uri" declarată astfel:

@Entity
public class BlogArticle
{
    [...]
    @ElementCollection(fetch = FetchType.EAGER)
    Set tags =new HashSet();
    [...]
}

Această proprietate reprezintă etichetele asociate unui articol. Acum vreau să generez un nor tag. Aș vrea să număresc frecvența fiecărei etichete.

Există o modalitate simplă de a face asta? (fără a crea un obiect Tag?)

2

1 răspunsuri

String hql = "select t, count(1) from BlogArticle a inner join a.tags t group by t";
List tagCounts = createQuery( hql ).list();

Iterator itr = tagCounts.iterator();
while ( itr.hasNext() ) {
    Object[] tagCount = (Object[]) itr.next();
    String tag = (String) tagCount[0];
    Long count = (Long) tagCount[1];
}
2
adăugat
Minunat! Mulțumesc. Trebuia doar să înlocuiesc contele (1) prin numărul (*).
adăugat autor tibo, sursa