此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data LDAP 3.4.0spring-doc.cn

查询方法

通常在存储库上触发的大多数数据访问操作都会导致对 LDAP 目录运行查询。 定义此类查询就是在存储库接口上声明方法,如下例所示:spring-doc.cn

PersonRepository 与查询方法
interface PersonRepository extends PagingAndSortingRepository<Person, String> {

    List<Person> findByLastname(String lastname);                            (1)

    List<Person> findByLastnameFirstname(String lastname, String firstname); (2)
}
1 该方法显示具有给定 . 查询是通过解析可与 和 连接的约束的方法名称来派生的。 因此,方法名称会导致查询表达式 。lastnameAndOr(&(objectclass=person)(lastname=lastname))
2 该方法显示具有给定 和 的所有人员的查询。 查询是通过解析方法名称派生的。 因此,方法名称会导致查询表达式 。lastnamefirstname(&(objectclass=person)(lastname=lastname)(firstname=firstname))

下表提供了可用于查询方法的关键字示例:spring-doc.cn

表 1.查询方法支持的关键字
关键词 样本 逻辑结果

LessThanEqualspring-doc.cn

findByAgeLessThanEqual(int age)spring-doc.cn

(attribute⇐age)spring-doc.cn

GreaterThanEqualspring-doc.cn

findByAgeGreaterThanEqual(int age)spring-doc.cn

(attribute>=age)spring-doc.cn

IsNotNull,NotNullspring-doc.cn

findByFirstnameNotNull()spring-doc.cn

(firstname=*)spring-doc.cn

IsNull,Nullspring-doc.cn

findByFirstnameNull()spring-doc.cn

(!(firstname=*))spring-doc.cn

Likespring-doc.cn

findByFirstnameLike(String name)spring-doc.cn

(firstname=name)spring-doc.cn

NotLike,IsNotLikespring-doc.cn

findByFirstnameNotLike(String name)spring-doc.cn

(!(firstname=name*))spring-doc.cn

StartingWithspring-doc.cn

findByStartingWith(String name)spring-doc.cn

(firstname=name*)spring-doc.cn

EndingWithspring-doc.cn

findByFirstnameLike(String name)spring-doc.cn

(firstname=*name)spring-doc.cn

Containingspring-doc.cn

findByFirstnameLike(String name)spring-doc.cn

(firstname=*name*)spring-doc.cn

(No keyword)spring-doc.cn

findByFirstname(String name)spring-doc.cn

(Firstname=name)spring-doc.cn

Notspring-doc.cn

findByFirstnameNot(String name)spring-doc.cn

(!(Firstname=name))spring-doc.cn