Hibernate JPA DAO

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

нужна помощь в разборе данного метода подскажите пожалуйста что здесь происходит если можно пошагово.


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