2016-06-14 15 views
6

Tôi đang cố gắng tìm kiếm toàn văn bản trong cơ sở dữ liệu postgres bằng jOOQ. Các dòng sau hoạt động:Tìm kiếm văn bản đầy đủ và ràng buộc biến bằng cách sử dụng postgres và jOOQ không hoạt động

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

Nhưng khi tôi thêm biến ràng buộc, để bảo vệ từ SQL injection, tôi không còn nhận được kết quả:

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

Bất kỳ ý tưởng?

Cảm ơn và ngày tốt lành

+5

Hãy thử '... to_tsquery (?) ...' - dấu gắn kết '?' Sẽ không hoạt động bên trong một chữ. – pozs

+0

Ah cảm ơn, đó là nó. một sửa chữa đơn giản như vậy. –

+3

@pozs: Bạn nên tạo câu trả lời từ điều này! –

Trả lời

0

Kể từ @posz không gửi bình luận của mình như là một câu trả lời, và nó đã được khá một thời gian, tôi sẽ đăng bài trả lời của mình như là một câu trả lời bản thân mình cho rõ ràng.

Hãy thử ... to_tsquery (?) ... - dấu nối? sẽ không hoạt động bên trong một chữ cái .

Các vấn đề liên quan