Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Базы данных (JDBC, JPA, Hibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2019, 18:36   #1
Ти6ка
Пользователь
 
Регистрация: 22.04.2015
Сообщений: 24
Сообщение Query did not return a unique result

У моей сущности Customer есть следующее свойство:
Код:
@OneToMany(mappedBy = "customerId")
private Collection<Order> orders;
Следующим запросом я пытаюсь отсортировать customers по количеству orders и мне нужно подсчитать общий размер результата используя функцию getCount(...):
Код:
query.groupBy(customer.get(Customer_.ID));
query.orderBy(builder.desc(builder.count(customer.join(Customer_.orders))))
;
Long count = getCount(em, customer, query)
Сама функция:
Код:
private Long getCount(EntityManager entityManager, Root<?> root, CriteriaQuery<?> criteria) {
        CriteriaBuilder builder = entityManager.getCriteriaBuilder();
        CriteriaQuery<Long> countQuery = builder.createQuery(Long.class);
        countQuery.select(builder.count(root));
        for (Root<?> fromRoot : criteria.getRoots()) {
            countQuery.getRoots().add(fromRoot);
        }
        Predicate whereRestriction = criteria.getRestriction();
        if (whereRestriction != null) {
            countQuery.where(whereRestriction);
        }
        Predicate groupRestriction = criteria.getGroupRestriction();
        if (groupRestriction != null) {
            countQuery.having(groupRestriction);
        }
        countQuery.groupBy(criteria.getGroupList());
        countQuery.distinct(criteria.isDistinct());
        return entityManager.createQuery(countQuery).getSingleResult();
    }
Но получаю следующую ошибку:
Код:
javax.persistence.NonUniqueResultException: query did not return a unique result: 3
Может кто-то сталкивался с данной проблемой и знает как ее решить
Ти6ка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка adoquery commandtext does not return a result set Don1231 БД в Delphi 1 27.05.2018 19:52
ADOQuery1:CommandText does not return a result set. Александр+02 Помощь студентам 2 17.05.2016 19:34
Оператор "return" без значения. функции оператора "return" Алексей111083 Помощь студентам 1 17.01.2016 17:18
Сортировка данных, идентифицированных как UNIQUE KEY Microplankton SQL, базы данных 4 02.03.2015 16:56
ошибка CommandText does not return a result set furstenberg БД в Delphi 2 04.02.2008 17:38