通常在存储库上触发的大多数数据访问操作都会导致对 LDAP 目录运行查询。 定义这样的查询是在存储库接口上声明方法的问题,如以下示例所示:Spring中文文档

具有查询方法的 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))
1 该方法显示对具有给定 . 通过分析可与 和 连接的约束的方法名称来派生查询。 因此,方法名称将生成 .lastnameAndOr(&(objectclass=person)(lastname=lastname))
2 该方法显示对具有给定 和 的所有人的查询。 查询是通过分析方法名称派生的。 因此,方法名称将生成 .lastnamefirstname(&(objectclass=person)(lastname=lastname)(firstname=firstname))

下表提供了可用于查询方法的关键字示例:Spring中文文档

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

LessThanEqualSpring中文文档

findByAgeLessThanEqual(int age)Spring中文文档

(attribute⇐age)Spring中文文档

GreaterThanEqualSpring中文文档

findByAgeGreaterThanEqual(int age)Spring中文文档

(attribute>=age)Spring中文文档

IsNotNull,NotNullSpring中文文档

findByFirstnameNotNull()Spring中文文档

(firstname=*)Spring中文文档

IsNull,NullSpring中文文档

findByFirstnameNull()Spring中文文档

(!(firstname=*))Spring中文文档

LikeSpring中文文档

findByFirstnameLike(String name)Spring中文文档

(firstname=name)Spring中文文档

NotLike,IsNotLikeSpring中文文档

findByFirstnameNotLike(String name)Spring中文文档

(!(firstname=name*))Spring中文文档

StartingWithSpring中文文档

findByStartingWith(String name)Spring中文文档

(firstname=name*)Spring中文文档

EndingWithSpring中文文档

findByFirstnameLike(String name)Spring中文文档

(firstname=*name)Spring中文文档

ContainingSpring中文文档

findByFirstnameLike(String name)Spring中文文档

(firstname=*name*)Spring中文文档

(No keyword)Spring中文文档

findByFirstname(String name)Spring中文文档

(Firstname=name)Spring中文文档

NotSpring中文文档

findByFirstnameNot(String name)Spring中文文档

(!(Firstname=name))Spring中文文档