Я использую Postgresql с Hibernate.now()
работает нормально, но now()
в часовом поясе UTC выдает ошибку.
Версия: Postgresql9.5.Тот же SQL-запрос работает нормально в pgAdmin.
String sql = "SELECT a FROM XspJobRequest a " +
"WHERE a.xspJobTypeId = :xspJobTypeId " +
"AND a.xspJobStatusId = :xspJobStatusId " +
"AND a.nextAttemptTs < (now() at time zone 'utc') " +
" ORDER BY a.insertTs";
try
{
Query query = entityManager.createQuery(sql);
query.setMaxResults(limitReturnCount);
query.setParameter("xspJobTypeId", jobType.getId());
query.setParameter("xspJobStatusId", XspJobStatusEnum.eNew.getId());
List<XspJobRequest> retval = query.getResultList();
if (!alreadyActive)
{
et.commit();
}
return retval;
}
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: неожиданный токен: около строки 1, столбец 167[ВЫБРАТЬ ИЗ com.hp.jampub.db.entity.XspJobRequest a WHERE a.xspJobTypeId =: xspJobTypeId AND a.xspJobStatusId =: xspJobStatusId И a.nextAttemptTs <(выберите сейчас ()) во временной зоне.insertTs] </p>