有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在LDAP查询中使用like运算符?

我想在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());

}

共 (1) 个答案

  1. # 1 楼答案

    关于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());
    }