Java HQL不喜欢加号字符

Java HQL不喜欢加号字符,java,hibernate,hql,Java,Hibernate,Hql,HQL解析DATEADD(m,-1,GETDATE())asDATEADD(m,-1,GETDATE()) HQL解析DATEADD(d,-1,GETDATE())asDATEADD(d,-1,GETDATE()) HQL解析DATEADD(d,+1,GETDATE())asDATEADD(d) HQL解析DATEADD(h,+23,GETDATE())asDATEADD(h) 所以我倾向于认为HQL不喜欢+字符。你能提出解决方案吗 p.S.DATEADD(d,+1,GETDATE())在SQL

HQL解析
DATEADD(m,-1,GETDATE())
as
DATEADD(m,-1,GETDATE())

  • HQL解析
    DATEADD(d,-1,GETDATE())
    as
    DATEADD(d,-1,GETDATE())

  • HQL解析
    DATEADD(d,+1,GETDATE())
    as
    DATEADD(d)

  • HQL解析
    DATEADD(h,+23,GETDATE())
    as
    DATEADD(h)

  • 所以我倾向于认为HQL不喜欢
    +
    字符。你能提出解决方案吗

    p.S.
    DATEADD(d,+1,GETDATE())
    在SQL控制台中运行良好。

    HQL不是SQL

    特别是HQL的语法不同于SQL的语法

    我没有找到HQL的形式语法,但对于HQL来说,+1表达式可能不正确

    在这种情况下,您可以:

    • 使用本机SQL而不是HQL
    • 写1而不是+1,然后继续使用HQL

    您可能必须使用本机sql查询而不是HQL?@OldProgrammer作为选项,但这是一种糟糕的做法。我相信HQL可以解析该查询(转义加字符)