簡體   English   中英

帶有字符串的JPQL LIKE語法

[英]JPQL LIKE syntax with Strings

編輯:

我將硬編碼查詢更改為:

 query.setParameter("desc", "%unplug //your// server... enjoy the freedom%" ESCAPE '//')

現在我得到了com.sun.jdi.InvocationException occurred invoking method.


也沒有產生堆棧跟蹤。




我的PostgreSQL數據庫中有一個description列,我試圖用'LIKE'子句查詢它,但是我無法獲得任何結果。 這是一個例子:

    Query query = em.createQuery("from MyClass c WHERE c.description LIKE :desc");
    query.setParameter("desc", "%unplug /your/ server... enjoy the freedom%"); 

在數據庫中,我有很多描述,其中包含上述文本的子字符串。 我做了很多研究,並研究了轉義特殊字符等問題,但是沒有任何效果。

我缺少了一些東西,我只是無法弄清楚那是什么。

最有可能的是,斜杠/弄亂了PG中的解析。 將參數轉換為帶引號的文字。 除非您確定字符串參數中沒有特殊字符(即您控制字符串),否則避免SQL注入始終是一個好主意。

query.setParameter("desc", "quote_literal('%unplug /your/ server... enjoy the freedom%')");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM