JPQL 意外 AST 节点:围绕“coalesce”
Posted
技术标签:
【中文标题】JPQL 意外 AST 节点:围绕“coalesce”【英文标题】:JPQL unexpected AST node: around "coalesce" 【发布时间】:2020-05-02 16:19:13 【问题描述】:JPQL 出错:抛出 org.springframework.dao.InvalidDataAccessApiUsageException (org.hibernate.hql.internal.ast.QuerySyntaxException:意外的 AST 节点:(靠近第 3 行,第 48 列)从 InvoiceBE 中选择 invoiceBE invoiceBE 其中 invoiceBE.institutionId = ?1 和 合并(invoiceBE.paidActivity.date
“coalesce”有什么错误吗?
我在mysql数据库中运行sql很好。
select
* from
ACQ_INVOICE invoice
where
invoice.institution_id=91475
and coalesce(invoice.`user_paid_date` < '2020-01-20', invoice.`paid_date` < '2020-01-20T16:45:40.786Z')
谢谢。
【问题讨论】:
【参考方案1】:合并表达式看起来完全错误。
我不认为引用属性的回勾是允许的。这看起来更像 MySQL SQL 语法。
我也不完全确定 COALESCE
是否可以与布尔表达式一起使用。
【讨论】:
【参考方案2】:改为
合并(invoice.user_paid_date
, invoice.paid_date
)
它奏效了。
【讨论】:
以上是关于JPQL 意外 AST 节点:围绕“coalesce”的主要内容,如果未能解决你的问题,请参考以下文章
由于意外的 AST 节点,使用 JPA TREAT 的命名查询无法正常工作
JPQL 构造函数表达式 - org.hibernate.hql.ast.QuerySyntaxException:表未映射
意外令牌:使用休眠、JPQL 和 postgres 函数时出现“<function_name>”错误
org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:FETCH