电商erp网站开发,wordpress账号破解版,怎么做好网络销售,深圳的企业排名Spring Data访问Elasticsearch----响应式Reactive存储库 一、用法二、配置 Reactive Elasticsearch存储库支持建立在存储库中解释的核心存储库支持之上#xff0c;利用由
Reactive REST客户端执行的
Reactive Elasticsearch Operations提供的操作。 Spring Data Elasticsear… Spring Data访问Elasticsearch----响应式Reactive存储库 一、用法二、配置 Reactive Elasticsearch存储库支持建立在存储库中解释的核心存储库支持之上利用由
Reactive REST客户端执行的
Reactive Elasticsearch Operations提供的操作。 Spring Data Elasticsearch响应式存储库支持使用Project Reactor作为其选择的响应式组合库。 有三个主要接口可供使用 ReactiveRepositoryReactiveCrudRepositoryReactiveSortingRepository
一、用法
要使用Repository访问存储在Elasticsearch中的域对象只需为它创建一个接口。在你真正开始之前你需要一个实体。 例1Person实体示例
public class Person {Idprivate String id;private String firstname;private String lastname;private Address address;// … getters and setters omitted
}请注意id属性需要为String类型。 例2用于持久化Person实体的基本存储库接口
interface ReactivePersonRepository extends ReactiveSortingRepositoryPerson, String {FluxPerson findByFirstname(String firstname); --------1 FluxPerson findByFirstname(PublisherString firstname); --------2 FluxPerson findByFirstnameOrderByLastname(String firstname); --------3 FluxPerson findByFirstname(String firstname, Sort sort); --------4 FluxPerson findByFirstname(String firstname, Pageable page); --------5 MonoPerson findByFirstnameAndLastname(String firstname, String lastname); --------6 MonoPerson findFirstByLastname(String lastname); --------7 Query({ \bool\ : { \must\ : { \term\ : { \lastname\ : \?0\ } } } })FluxPerson findByLastname(String lastname); --------8 MonoLong countByFirstname(String firstname) --------9 MonoBoolean existsByFirstname(String firstname) --------10 MonoLong deleteByFirstname(String firstname) --------11
}1. 该方法显示具有给定firstname的所有人的查询。
2. Finder方法正在等待Publisher的输入以绑定firstname的参数值。
3. Finder方法按lastname排序匹配的文档。
4. Finder方法通过Sort参数定义的表达式对匹配的文档进行排序。
5. 使用Pageable将偏移量和排序参数传递到数据库。
6. Finder方法使用And/Or关键字连接条件。
7. 查找第一个匹配的实体。
8. 该方法显示了通过使用给定参数运行Query注解来查找的具有给定lastname的所有人的查询。
9. 统计所有firstname匹配的实体。
10. 检查是否至少存在一个firstname匹配的实体。
11. 删除所有firstname匹配的实体。二、配置
对于Java配置使用EnableReactiveElasticsearchRepositories注解。如果没有配置基础包基础结构将扫描带注解的配置类的包。下面的清单显示了如何为存储库使用Java配置: 例3存储库的Java配置
Configuration
EnableReactiveElasticsearchRepositories
public class Config extends AbstractReactiveElasticsearchConfiguration {Overridepublic ReactiveElasticsearchClient reactiveElasticsearchClient() {return ReactiveRestClients.create(ClientConfiguration.localhost());}
}因为前一个示例中的存储库扩展了ReactiveSortingRepository所以所有CRUD操作以及对实体进行排序访问的方法都是可用的。使用存储库实例是一个将依赖项注入client的问题如下面的示例所示: 例4对Person实体的排序访问
public class PersonRepositoryTests {Autowired ReactivePersonRepository repository;Testpublic void sortsElementsCorrectly() {FluxPerson persons repository.findAll(Sort.by(new Order(ASC, lastname)));// ...}
}