У меня проблема с HQL, где я устанавливаю параметры запроса. Одним из них является Дата. Когда я отлаживаю код, появляется Date со временем, вводящим метод. Я установил параметр, используя setParameter(timestamp, new Timestamp(date.getTime()))
или query.setTimestamp
... et c et c Я использовал много комбинаций ...
Когда я использую p6spy, чтобы проверить SQL передачу из приложения в в БД есть только '29-Jan-21'
или другая дата без времени.
Я использую окончательную версию hibernate 5.1.0 и postgre БД. Я буду рад любой помощи.
Пример:
Query query = getSessionFactory().getCurrentSession().createQuery("SELECT user FROM UserEntity cr WHERE user.userStatus.id = :statusId AND :timestamp >= user.valid_to");
Вот как я пытался установить параметр метки времени:
query.setParameter("timestamp", new Timestamp(date.getTime()));
query.setParameter("timestamp", date, TimestampType.INSTANCE);
query.setTimestamp("timestamp", date);
query.setTimestamp("timestamp", new Timestamp(date.getTime()));
Проблема в том, что сгенерировано SQL заменить метку времени на '29-Jan-21'
или другую дату, которую я выберу, но без времени. Параметр date
поступает в метод из пользовательского интерфейса и содержит полную дату со временем.