Как сравнить поля меток времени в HQL? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть столбец Java.Util.Timestamp в таблице, и я не могу сделать сравнение с переменной в предложении WHERE.С этим кодом:

        // Using Calendar to convert Java Date 'horarioEliminar' to Sql Timestamp 't'
        Calendar cal = Calendar.getInstance();
        cal.setTime(horarioEliminar);
        cal.set(Calendar.MILLISECOND, 0);

        Timestamp t = new java.sql.Timestamp(cal.getTimeInMillis());

        String horQ = "FROM Academia.Horarios WHERE horario ="+ t;
        horario = (Horarios) session.createQuery(horQ).uniqueResult();

Я получил исключение:

ОШИБКА [http-nio-8080-exec-873] org.hibernate.hql.internal.ast.ErrorCounter.reportError строка 1:57: неожиданный токен: 10

Но я проверил, что результат System.out.println (t) совпадает со значением, хранящимся в столбце horario.Как я могу правильно сравнить эти две метки времени?

1 Ответ

0 голосов
/ 28 мая 2018

Попробуйте установить метку времени в качестве параметра запроса, например:

 Timestamp t = new java.sql.Timestamp(cal.getTimeInMillis());

 String horQ = "FROM Academia.Horarios WHERE horario = :ts";
 horario = (Horarios) session.createQuery(horQ).setParameter("ts", t).uniqueResult();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...