NoViableAltException:@NamedQuery中的意外标记

时间:2016-02-17 11:58:40

标签: java jpa eclipselink

我有以下查询,当我直接在db:

使用它时,它正在工作
@NamedQuery(name = "Sentitems.findWhereSendingDateTimeIsYesterdayByStatus",
        query = "SELECT s FROM Sentitems s WHERE s.status = :status AND DATE_FORMAT(s.sendingDateTime, '%Y-%m-%d') = SUBDATE(CURDATE(),1)")

运行应用程序时,会抛出NoViableAltException

Exception Description: Syntax error parsing the query [Sentitems.findWhereSendingDateTimeIsYesterdayByStatus: SELECT s FROM Sentitems s WHERE s.status = :status AND DATE_FORMAT(s.sendingDateTime, '%Y-%m-%d') = SUBDATE(CURDATE(),1)], line 1, column 66: unexpected token [(].
Internal Exception: NoViableAltException(83@[()* loopback of 383:9: (d= DOT right= attribute )*])

2 个答案:

答案 0 :(得分:1)

尝试使用@NamedNativeQuery。您似乎正在使用某些特定于DB的语法。

答案 1 :(得分:0)

就像Balaji Krishnan在评论中所说,解决方案是使用@NamedNativeQuery代替@NamedQuery