[英]How to use like operator within LDAP query?
我想在LDAP查詢中使用Like運算符,並找到以字符串名稱開頭的任何名稱。 (類似[Name = Mike *]),但顯然不起作用。 任何幫助將不勝感激。
public List<String> findByName(String Name) {
LdapQuery query = query().where("objectclass").is("top")
.and("Name").like(Name);
return ldapTemplate.search(query, new NameAttributesMapper());
}
嘗試在名稱后添加通配符:
public List<String> findByName(String Name) {
LdapQuery query = query().where("objectclass").is("top")
.and("Name").like(Name + "*");
return ldapTemplate.search(query, new NameAttributesMapper());
}
LdapQueryBuilder和LikeFilter的文檔指出,您必須在查詢中顯式使用*
,因此,如果要查找以Mike
開頭的用戶,則必須在過濾器語法中使用Mike*
。 這只是允許您指定通配符而不需要對其進行轉義的簡寫。
所以:
public List<String> findByName(String Name) {
LdapQuery query = query().where("objectclass").is("top")
.and("Name").like(Name + "*");
return ldapTemplate.search(query, new NameAttributesMapper());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.