【发布时间】:2020-05-26 14:01:05
【问题描述】:
引起:org.hibernate.hql.internal.ast.QuerySyntaxException: 意外令牌:INTERVAL 附近
这是我的查询:
private static final String USERS_NOT_ACTION_IN_LAST_MONTH = select u from myTable u where u.lastDate + INTERVAL 30 DAY <= CURDATE();
@Override
public List<MyEntity> getItemOlderThanMonth() {
Query q = _entityManager.createQuery(USERS_NOT_ACTION_IN_LAST_MONTH, MyEntity.class);
return q.getResultList();
}
我想获取超过 30 天的记录。
【问题讨论】:
-
ANSI SQL方式:
INTERVAL '30' DAY -
在性能方面
select u from myTable u where u.lastDate <= CURDATE() - INTERVAL '30' DAY;更安全。 -
但得到同样的错误:“unexpected token: INTERVAL”
-
hql 没有 INTERVAL 语法。 MySQL 有。
标签: mysql sql hibernate date jpa