Запрос API критериев JPA для интервала дат

Как написать запрос критериев java для hibernate3.

Выберите * из some_table, где created_at между DATE_SUB (curdate (), INTERVAL 8 DAY) и date_sub (curdate (), INTERVAL 2 DAY)

    CriteriaBuilder builder = sessionFactory.getCriteriaBuilder();
    CriteriaQuery<MyEntity> criteria = builder.createQuery(MyEntity.class);

    Root<MyEntity> root = criteria.from(MyEntity.class);

person MUJEEB    schedule 16.03.2018    source источник
comment
Если вы нашли мой ответ полезным, отметьте его как принятый, чтобы помочь другим пользователям. В противном случае дайте нам знать, почему это не сработало или где его нужно улучшить.   -  person perissf    schedule 21.03.2018


Ответы (1)


Используя старый java.util.Calendar и _ 2_.

Calendar now = Calendar.getInstance();
now.add(Calendar.DATE, -8);
Date eightDaysAgo = now.getTime();
now.add(Calendar.DATE, 6);
Date twoDaysAgo = now.getTime();
Expression<Date> createdAt = root.<Date>get("created_at"); // choose the name of the property in Entity definition
Predicate predicate = builder.between(createdAt, twoDaysAgo, eightDaysAgo);
criteria.where(predicate);
person perissf    schedule 16.03.2018