抽象模式类型“COALESCE”未知

Posted

技术标签:

【中文标题】抽象模式类型“COALESCE”未知【英文标题】:The abstract schema type 'COALESCE' is unknown 【发布时间】:2017-08-09 08:12:39 【问题描述】:

我在 JPA-NamedQuery 中使用 COALESCE。我总是在 Eclipse 上收到此错误消息:

       The abstract schema type 'COALESCE' is unknown.

你知道如何删除它吗?

请注意,查询工作正常。

编辑

查询是

@NamedQuery(name = "FootBaller.mostActive", 
    query = "SELECT f FROM FootBaller f ORDER BY COALESCE((SELECT count(*) FROM RelatedMatch rm WHERE rm.footBaller=f), 0) DESC")

【问题讨论】:

如何与人们分享你如何在“JPA-NamedQuery”中使用它?也许你用错了? 它工作正常,但我认为这个问题与 eclipse 验证有关。这里是查询:@NamedQuery(name = "FootBaller.mostActive", query = "SELECT f FROM FootBaller f ORDER BY COALESCE((SELECT count(*) FROM RelatedMatch rm WHERE rm.footBaller=f), 0) DESC") 我认为这是无效的 JPQL。我见过的任何 JPQL BNF 中都没有在 ORDER BY 子句中使用 COALESCE。您只能按“state_field_path_expression | result_variable”排序,而这些都不是。显然,您的 JPA 提供者提供的消息是胡言乱语,但并没有隐藏它无效的事实。 除此之外没有任何评论,因为您没有提供实体类。请...把它们放在问题中而不是在评论中 【参考方案1】:

如果你看看这个; https://dzone.com/articles/the-nasty-jpa-unknown-abstract

也可以参考这里,更多的是区分大小写,即用户错误:Error on compiling query: The abstract schema type 'entity' is unknown

您可能在需要大写的地方使用了小写,或者您的注释错误等。但请先参考上面的第一个链接。

【讨论】:

以上是关于抽象模式类型“COALESCE”未知的主要内容,如果未能解决你的问题,请参考以下文章

graphql中未知对象的模式类型

Coalesce 函数如何处理数据类型

BigQuery COALESCE/IFNULL 类型与文字不匹配

错误:COALESCE 类型时间戳没有时区和整数无法匹配(Postgresql)

设计模式 抽象工厂模式

如何使用Oracle的COALESCE函数