2016-06-14 12 views
6

Sto cercando di eseguire una ricerca di testo completo in un database postgres utilizzando jOOQ. La seguente riga funziona:Ricerca a testo integrale e associazione variabile utilizzando postgres e jOOQ non funzionanti

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

Ma quando aggiungo vincolante variabile, per proteggere da SQL injection, non ho più ottengo risultati:

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

Tutte le idee?

Grazie e buona giornata

+5

Provare '... to_tsquery (?) ...' - il segno di associazione '?' Non funzionerà all'interno di un valore letterale. – pozs

+0

Ah grazie, era così. una soluzione così semplice. –

+3

@pozs: dovresti creare una risposta da questo! –

risposta

0

Dal @posz non ho postato il suo commento come risposta, ed è stato un po 'di tempo, vi posterò la sua risposta come una risposta me stesso per chiarezza.

Provare ... to_tsquery (?) ... - il segno di rilegatura? non funzionerà all'interno di un valore letterale .

Problemi correlati