PostgreSQL jsonb, `?` Und JDBC
Ich verwende PostgreSQL 9.4 und den fantastischen JSONB-Feldtyp. Ich versuche, ein Feld in einem Dokument abzufragen. Folgendes funktioniert in der psql CLI
SELECT id FROM program WHERE document -> 'dept' ? 'CS'
Wenn ich versuche, dieselbe Abfrage über meine Scala-App auszuführen, wird der folgende Fehler angezeigt. Ich verwende das Play Framework und Anorm. Die Abfrage sieht also so au
SQL(s"SELECT id FROM program WHERE document -> 'dept' ? {dept}")
.on('dept -> "CS")
....
SQLException:: Für Parameter 5 wurde kein Wert angegeben. (SimpleParameterList.java:223
(in meinen aktuellen Abfragen gibt es mehr Parameter)
Ich kann das umgehen, indem ich meinen Parameter auf @ setzjsonb
und mit dem@>
Operator zur Überprüfung des Containments.
SQL(s"SELECT id FROM program WHERE document -> 'dept' @> {dept}::jsonb")
.on('dept -> "CS")
....
Ich bin nicht besonders scharf auf die Arbeit. Ich weiß nicht, ob es Performance-Nachteile für die Besetzung gibt, aber es ist zusätzliche Eingabe und nicht offensichtlich.
ann ich sonst noch etwas tu