簡體   English   中英

在LDAP查詢中如何使用like運算符?

[英]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());
}

LdapQueryBuilderLikeFilter的文檔指出,您必須在查詢中顯式使用* ,因此,如果要查找以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.

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