Нужна помощь в создании запроса критериев JPA

Я создаю свое первое веб-приложение Java EE, используя Glassfish и JSF. Я новичок в запросе критериев, и у меня есть запрос, который мне нужно выполнить, но учебник по javaee6 кажется немного скудным на примерах. В любом случае, мне сложно создать запрос.

Цель: я хочу привлечь компанию с наибольшим количеством хранимых документов. Компании имеют отношения OneToMany с документами. Documents имеет отношение ManyToOne с несколькими таблицами, их различает столбец «usertype».

MySQL-запрос:

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

Спасибо

- обновление - Основываясь на отзывах пользователей, вот что у меня есть на данный момент:

        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();

Я получаю следующую ошибку:

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

Типичная ошибка, для меня ничего не значит!

11
задан Alan B. Dee 6 January 2012 в 22:40
поделиться