JPA2 / Hibernate-Kriterien oder CriteriaQuery für Postgres-JSON-Typ

8

Ich habe eine PostgreSQL-Datenbank mit JSON-Feldern. Ich möchte eine Abfrage erstellen, die Ergebnisse durch JSON-Ausdrücke beschränkt. Ich kann diese Abfrage in psql ohne Problem formulieren:

%Vor%

Diese Abfrage kombiniert eine normale Spalte und eine JSON-Spalte.

Ich habe keine Ahnung, wie ich das in Hibernate über die Kriterien- oder Kriterienabfrage starten kann. Ich könnte theoretisch HSQL-Sprache verwenden, aber ich bin fast sicher, dass es scheitern wird, wenn es um die JSON-Spalte geht.

Hat jemand eine Idee, wie man das anpackt?

    
Ion Tichy 22.12.2014, 17:09
quelle

1 Antwort

1

Die einzige Möglichkeit, dies zu tun, besteht darin, eine benutzerdefinierte SQLFunction für den Ausdruck CAST(jsonField->'key' AS float) zu schreiben und diese dann in JPQL zu verwenden.

%Vor%

Registrieren Sie sich im Dialekt mit registerFunction("json_float", new JsonFloatFunction()) und verwenden Sie es in der Abfrage wie

%Vor%     
Christian Beikov 03.12.2015, 09:18
quelle

Tags und Links