2016-06-14 19 views
6

Ich versuche eine Volltextsuche in einer Postgres-Datenbank mit jOOQ zu tun. Die folgende Zeile funktioniert:Volltextsuche und variable Bindung mit postgres und jOOQ funktioniert nicht

Result res = pgContext.select() 
         .from(products.PRODUCTS) 
         .where("to_tsvector(title || ' ' || description || ' ' || tags) @@ to_tsquery('" + query + "')") 
         .fetch(); 

Aber wenn ich Variablenbindung, fügen Sie von SQL-Injection zu schützen, habe ich nicht mehr Ergebnisse erhalten:

Result res = pgContext.select() 
         .from(products.PRODUCTS) 
         .where("to_tsvector(title || ' ' || description || ' ' || tags) @@ to_tsquery('?')", query) 
         .fetch(); 

Irgendwelche Ideen?

Dank und guter Tag

+5

Probieren Sie '... to_tsquery (?) ...' - die Bindemarke '?' Wird in einem Literal nicht funktionieren. – pozs

+0

Ah danke, das war es. so eine einfache Lösung. –

+3

@pozs: Sie sollten eine Antwort von diesem erstellen! –

Antwort

0

Seit @posz nicht seinen Kommentar als Antwort hinterlassen hat, und es hat eine ganze Weile, werde ich seine Antwort als Antwort schreibt mich für Klarheit.

Versuch ... to_tsquery (?) ... - die Bindemarke? funktioniert nicht in einem Literal.