Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 15.08.2019, 19:36   #1
Ти6ка
Пользователь
 
Регистрация: 22.04.2015
Сообщений: 24
Репутация: 10
Сообщение 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ка вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


10:38.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.