powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / CriteriaBuilder сравнение дат
10 сообщений из 10, страница 1 из 1
CriteriaBuilder сравнение дат
    #39361975
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как сравнить дату игнорирую время?

Код: java
1.
2.
3.
4.
5.
        CriteriaBuilder qb = em.getCriteriaBuilder();
        CriteriaQuery<Long> query = qb.createQuery(Long.class);
        Root<UserInfo> root = query.from(UserInfo.class);
        query.select(qb.count(root.get(User_.id)));
        qb.equal(root.get(User_.created), userFilter.getCreatedFrom());
...
Рейтинг: 0 / 0
CriteriaBuilder сравнение дат
    #39362156
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не сталкивался?
...
Рейтинг: 0 / 0
CriteriaBuilder сравнение дат
    #39362248
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-,

Там нет никакой магии. Подумай как ты хочешь это реализовать на SQL. Есть ли у тебя время в базе или только в объекте?
...
Рейтинг: 0 / 0
CriteriaBuilder сравнение дат
    #39362258
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz-=Koba=-,

Там нет никакой магии. Подумай как ты хочешь это реализовать на SQL. Есть ли у тебя время в базе или только в объекте?

Да база время есть
Ну в sql сделал как-то так

Код: sql
1.
2.
3.
4.
/* Formatted on 08/12/2016 9:29:15 (QP5 v5.300) */
SELECT *
  FROM user_info
 WHERE TRUNC (created) = TO_DATE ('28.11.2016', 'DD.MM.YYYY')
...
Рейтинг: 0 / 0
CriteriaBuilder сравнение дат
    #39362267
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
CriteriaBuilder сравнение дат
    #39362268
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй использовать объект LocalDate из joda time library. Он обрежет время:
Код: java
1.
2.
3.
4.
java.util.Date date = new java.util.Date(System.currentTimeMillis());
System.out.println(date);
org.joda.time.LocalDate localDate = new org.joda.time.LocalDate(date);
System.out.println(localDate.toDate());


Результат:
Код: java
1.
2.
Thu Dec 08 09:37:47 MSK 2016
Thu Dec 08 00:00:00 MSK 2016


И передай localDate.toDate() в запрос.
...
Рейтинг: 0 / 0
CriteriaBuilder сравнение дат
    #39362278
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz-=Koba=-,

https://forum.hibernate.org/viewtopic.php?f=1&t=987705
У меня JPA
...
Рейтинг: 0 / 0
CriteriaBuilder сравнение дат
    #39362280
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паша01Попробуй использовать объект LocalDate из joda time library. Он обрежет время:
Код: java
1.
2.
3.
4.
java.util.Date date = new java.util.Date(System.currentTimeMillis());
System.out.println(date);
org.joda.time.LocalDate localDate = new org.joda.time.LocalDate(date);
System.out.println(localDate.toDate());


Результат:
Код: java
1.
2.
Thu Dec 08 09:37:47 MSK 2016
Thu Dec 08 00:00:00 MSK 2016


И передай localDate.toDate() в запрос.

ну так в БД хранится со временм
...
Рейтинг: 0 / 0
CriteriaBuilder сравнение дат
    #39362294
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
CriteriaBuilder сравнение дат
    #39362328
Фотография -=Koba=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да спасибо вот я и ищу

http://stackoverflow.com/questions/10733721/jpa2-hibernate-query-using-date-as-a-query-param-ignoring-the-time-part

Как вместо

Код: java
1.
2.
3.
            predicates.add(qb.equal(qb.function("year", Integer.class, root.get(UserInfo_.created)), dateCalendar.get(Calendar.YEAR)));
            predicates.add(qb.equal(qb.function("month", Integer.class, root.get(UserInfo_.created)), dateCalendar.get(Calendar.MONTH) + 1));
            predicates.add(qb.equal(qb.function("day", Integer.class, root.get(UserInfo_.created)), dateCalendar.get(Calendar.DATE)));



Сделать

extract (year from date)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / CriteriaBuilder сравнение дат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]