List сущьностей из бд Criteria API

public Long userNotificationsCount(UUID userId) {
    CriteriaBuilder criteria = entityManager.getCriteriaBuilder();
    CriteriaQuery<Long> query = criteria.createQuery(Long.class);
    Root<NotificationDto> root = query.from(NotificationDto.class);
    query.select(criteria.count(root));
    Predicate predicate = criteria.and(
            criteria.or(
                    criteria.equal(root.get("userId"), userId),
                    criteria.isNull(root.get("userId"))),
            criteria.equal(root.get("status"), NotificationStatus.NEW.getValue()));
    query.where(predicate);
    return entityManager.createQuery(query).getSingleResult();
}

Нужно. сделать метод на подобии вышеприведенного но возвращать он должен list не понимаю как нужна помощь


Ответы (1 шт):

Автор решения: ulxanxv

А зачем вы пишите entityManager.createQuery(query).getSingleResult(), если хотите List? getSingleResult() — переводиться как "получить одиночный результат". В целом, он и делает это. Возвращает одиночный результат.

Используйте entityManager.createQuery(query).getResultList() и будет Вам List

→ Ссылка