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();
}
нужна помощь в разборе данного метода подскажите пожалуйста что здесь происходит если можно пошагово.