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

Antworten auf die Frage(6)

Ihre Antwort auf die Frage