0
私はpostgresで動作するカスタムクエリを持っていますが、H2で失敗しています。H2クエリで 'ノードのデータ型がありません:org.hibernate.hql.internal.ast.tree.MethodNode'
select distinct(to_char(date_requested,'YYYY'))
from Product
where date_requested is not null
私が得る例外は次のとおりです、私は別のクエリ
> Caused by: java.lang.IllegalStateException: No data type for node: org.hibernate.hql.internal.ast.tree.MethodNode
\-[METHOD_CALL] MethodNode: '('
+-[METHOD_NAME] IdentNode: 'to_char' {originalText=to_char}
\-[EXPR_LIST] SqlNode: 'exprList'
+-[IDENT] IdentNode: 'date_requested' {originalText=date_requested}
\-[QUOTED_STRING] LiteralNode: ''YYYY''
TO_CHARの同様の使用と、うまく動作します:
select count(*), requester
from Product
where to_char(date_requested,'YYYY') = '2016'
group by requester
ORDER BY Count(*) desc
私はH2の最新バージョンを持っています、1.4.192、to_charの使用は大丈夫です。
私はここで間違っていますか?最初のクエリがH2で動作しないのはなぜですか?
無関係ですが、「distinct」は*** NOT ***の機能です。括弧の間に式を置いても、別のものは何も変わりません。 'distinct(a)'は 'distinct a'と同じです –
はい、私はそれを認識しています。私が単体テストを書いているのは同僚の質問です。とにかく、はい、無関係です。編集していただきありがとうございます。 – user1825770
難読化レイヤ(別名ORM)なしで実行するとクエリが機能する –