modules/ROOT/pages/redis/redis-repositories/query-by-example.adoc 中未解析的 include 指令 - include::3.5@data-commons::p age$query-by-example.adoc[]
运行示例
以下示例对存储库使用“按示例查询”:
示例 1.使用存储库按示例查询
interface PersonRepository extends ListQueryByExampleExecutor<Person> {
}
class PersonService {
@Autowired PersonRepository personRepository;
List<Person> findPeople(Person probe) {
return personRepository.findAll(Example.of(probe));
}
}
Redis 存储库及其二级索引支持 Spring Data 的 Query by Example 功能的子集。 特别是,仅使用精确值、区分大小写和非空值来构造查询。
二级索引使用基于集合的作(设置交集、设置并集)来确定匹配的键。将未编制索引的属性添加到查询中不会返回任何结果,因为不存在索引。“按示例查询”支持检查索引配置,以仅在查询中包含索引涵盖的属性。这是为了防止意外包含非索引属性。
不区分大小写的查询和不受支持StringMatcher
实例在运行时被拒绝。
以下列表显示了支持的“按示例查询”选项:
-
区分大小写,简单属性和嵌套属性的精确匹配
-
任意/所有匹配模式
-
标准值的值转换
-
排除
null
条件中的值
以下列表显示了按示例查询不支持的属性:
-
不区分大小写的匹配
-
正则表达式,前缀/包含/后缀字符串匹配
-
查询关联、集合和类映射属性
-
包括
null
条件中的值 -
findAll
带排序