2016-03-15 68 views
3

我能夠在查詢瀏覽器(我的SQL)中觸發查詢,並能夠檢索如下記錄SELECT * FROM details WHERE title REGEXP 'dem';春季使用正則表達式查詢與冬眠

但是當我使用類似類型的代碼在服務器端的話,我是給誤差意外的標記:REGEXP

在網絡搜索後,似乎Hibernate不支持REGEXP。但也給出了一些與此無關的解決方案。我只需要在休眠狀態下通過查詢來處理這個問題。

sbQuery.append("select distinct id from deatil id"); 
sbQuery.append("where ((id.title like :keyword) OR (id.description like :keyword) "); 
+0

相關:[正則表達式在休眠查詢](http://stackoverflow.com/q/5831768/4290096) –

+0

感謝這一點,但對我來說這是行不通的,因爲我只需要正則表達式。我已經應用瞭解決方法,但這些都不符合我的要求,否則會產生更多問題。任何其他方式或建議 – OPTIMUS

回答

0

您可以在您的數據庫的Hibernate方言中添加自己的custom function

我嘗試添加一個比這更復雜的自定義函數,並且我有問題使其工作,希望簡單的應該可以開箱即用。

0
Query query = session.createSQLQuery("select distinct id from deatil id where (id.title like :keyword) OR (id.description like :keyword)") 

.setParameter(「keyword」,keyword); 列表結果= query.list();

缺少「)」並且必須設置參數值。

+0

這不會被視爲正則表達式。例如,我有一個字符串「我的ARG學生很好的支付應用程序和內容」我想搜索很好,然後我需要像循環條件。爲了避免這種情況,我想使用正則表達式。總之關鍵字參數可以包含許多不同的關鍵字。 – OPTIMUS