[英]JPQL (JPA) search substring
我面臨着通過某些(子)字符串搜索實體的簡單問題,它們可能包含這些字符串。
例如,我有用戶user1,usr2,useeeer3,user4,我將進入搜索窗口“use”,我希望返回user1,useeer3,user4。
我相信你現在知道我的意思了。 JPA(JQPL)有任何建設嗎? 在命名查詢中以某種方式使用WHERE進行搜索會很不錯。 類似於“SELECT u FROM User u WHERE u.nickname contains:substring”
使用LIKE
表達式。 以下是4.6.9類似 JPA 1.0規范表達式 (JSR 220)的引用:
在條件表達式中使用比較運算符
[NOT] LIKE
的語法如下:string_expression [NOT] LIKE pattern_value [ESCAPE escape_character]
string_expression必須具有字符串值。
pattern_value
是一個字符串文字或字符串值輸入參數,其中下划線(_)代表任何單個字符,百分號(%)代表任何字符序列(包括空序列),所有其他字符代表為了自己。 可選的escape_character是單字符字符串文字或字符值輸入參數(即char
或Character
),用於轉義pattern_value
下划線和百分號字符的特殊含義。例如:
- address.phone LIKE '12%3'適用於'123''12993',false適用於'1234'
- asentence.word LIKE'l_se'對於'lost'是真的而對於'loose'是假的
- aword.underscored LIKE'\\ _%'ESCAPE'\\'對於'_foo'為真,對於'bar'為false
- address.phone NOT LIKE '12%3'對於'123'和'12993'為false,對於'1234'為true
如果值
string_expression
或pattern_value
是NULL
或未知,則LIKE表達式的值是未知的。 如果指定了escape_character
且為NULL
,則LIKE表達式的值未知。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.