Ich habe eine benutzerdefinierte Abfrage, die mit Postgres funktioniert, aber mit H2 scheitert.H2-Abfrage fehlgeschlagen mit 'Kein Datentyp für Knoten: org.hibernate.hql.internal.ast.tree.MethodNode'
select distinct(to_char(date_requested,'YYYY'))
from Product
where date_requested is not null
Die Ausnahme, die ich bekommen ist:
> 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''
Eine weitere Abfrage I, mit ähnlicher Verwendung von to_char habe, funktioniert gut:
select count(*), requester
from Product
where to_char(date_requested,'YYYY') = '2016'
group by requester
ORDER BY Count(*) desc
ich die neueste Version von H2 habe , 1.4.192, also weiß ich, dass die Verwendung von to_char in Ordnung ist.
Was mache ich hier falsch? Warum funktioniert die erste Abfrage nicht mit H2?
Nicht verwandt, aber: 'distinct' ist *** NOT *** a-Funktion. Wenn Sie einen Ausdruck zwischen Klammern setzen, ändert sich nichts für distinct. 'distinct (a)' ist das gleiche wie 'distinct a' –
Ja, ich bin mir dessen bewusst. Es ist die Frage eines Kollegen, für die ich Komponententests schreibe. Wie auch immer, ja, nicht verwandt. Danke für die Bearbeitung. – user1825770
Funktioniert die Abfrage, wenn sie ohne die Verschleierungsebene (ORM) ausgeführt wird –