Besoin d'aide pour créer JPA critères de requête

Je suis en train de construire mon premier Java EE de l'application web à l'aide de Glassfish et JSF. Je suis assez nouveau dans les critères de la requête et j'ai une question j'ai besoin de réaliser, mais le javaee6 tutoriel semble un peu mince sur des exemples. De toute façon, je vais avoir un moment difficile la création de la requête.

But: je tiens à tirer la compagnie avec le plus de documents stockés.
Les entreprises ont une relation OneToMany avec les Documents.
Documents a une relation ManyToOne avec plusieurs tables, la usertype" colonne distingue.

Requête MySQL:

SELECT USERID, COUNT(USERID) AS CNT 
FROM DOCUMENTS 
WHERE USERTYPE="COMPANY" 
GROUP BY USERID 
ORDER BY CNT DESC

Grâce

--update--
Basé sur les commentaires des utilisateurs, voici ce que j'ai à ce jour:

        CriteriaBuilder cb = em.getCriteriaBuilder();
        CriteriaQuery<Documents> cqry = cb.createQuery(Documents.class);
        //Intersting Stuff
        Root<Documents> root = cqry.from(Documents.class);
        Expression userid = root.get("userID");
        Expression usertype = root.get("userType");
        Expression count = cb.count(userid);
        cqry.multiselect(userid, count);
        Predicate userType = cb.equal(usertype, "COMPANY");
        cqry.where(userType);
        cqry.groupBy(userid);
        cqry.orderBy(cb.desc(count));
        //more boilerplate
        Query qry = em.createQuery(cqry);
        List<Documents> results = qry.getResultList();

L'erreur que j'obtiens est:

Exception Description: Partial object queries are not allowed to maintain the cache or be edited.  You must use dontMaintainCache().

Erreur typique, ne signifie rien pour moi!

Essayez de taper la requête de CriteriaQuery<Documents> CriteriaQuery afin de sélectionner le comte sans offenser l'API. Si vous aussi poster plus d'infos sur les tableaux / entités je peux essayer d'autres façons de

OriginalL'auteur Alan B. Dee | 2012-01-06