【问题标题】:JPQL Date between intervalJPQL 间隔日期
【发布时间】:2012-04-25 16:47:57
【问题描述】:

我的错误在哪里?

SELECT m FROM Message m WHERE m.tabId = :idTab AND BETWEEN :startDate AND :endDate ORDER BY m.id DESC

我有这个错误:

Exception Description: Syntax error parsing the query ... , line 1, column 63: unexpected token [BETWEEN].
Internal Exception: NoViableAltException(11@[634:7: (n= NOT )?])

在我的 Java 代码中:

// Exception line
Query query = em.createQuery(queryBuilder.toString());
////
query.setParameter("idTab", idTablet);
if (limit > 0) {
  query.setMaxResults(limit);
}
if (dateFrom != null) {
  query.setParameter("startDate", dateFrom, TemporalType.DATE);
   if (dateTo == null) {
     dateTo = new Date();
   }
   query.setParameter("endDate", dateTo, TemporalType.DATE);
}
messages = (List<MessageEntity>) query.getResultList();

【问题讨论】:

  • 你确定不是 SELECT *?

标签: java mysql database jpql


【解决方案1】:

您没有选择任何字段,并且缺少用于日期比较的字段。试试 -

SELECT m.*
FROM Message m
WHERE m.tabId = :idTab
AND date_field BETWEEN :startDate AND :endDate
ORDER BY m.id DESC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2014-12-17
    相关资源
    最近更新 更多