003-spring-data-elasticsearch 3.0.0.0使用【一】-spring-data之概述、核心概念、查询方法、定义Repository接口
2018-03-03 12:29
966 查看
零、概述
Spring Data Elasticsearch项目提供了与Elasticsearch搜索引擎的集成。Spring Data Elasticsearch的关键功能区域是一个POJO中心模型,用于与Elastichsearch Documents进行交互并轻松编写存储库样式数据访问层。0.1、主要功能
1.Spring配置支持使用基于Java的@Configuration类或ES客户端实例的XML名称空间。2.ElasticsearchTemplate帮助类,提高执行常见ES操作的生产力。包括文档和POJO之间的集成对象映射。
3.功能丰富的对象映射与Spring的转换服务集成
4.自动实现Repository接口,包括支持自定义find[查找器]方法。
5.CDI支持存储库
maven使用上节已说明
0.2、文档说明
参看地址:https://docs.spring.io/spring-data/elasticsearch/docs/3.0.4.RELEASE/reference/html/0.3、元数据地址
Version Control - https://github.com/spring-projects/spring-data-elasticsearchBugtracker - https://jira.spring.io/browse/DATAES Release repository - https://repo.spring.io/libs-release Milestone repository - https://repo.spring.io/libs-milestone Snapshot repository - https://repo.spring.io/libs-snapshot git:https://github.com/spring-projects/spring-data-elasticsearch
官方发布说明:https://projects.spring.io/spring-data-elasticsearch/
一、Spring Data Repositories
本节信息来自Spring Data Commons模块,支持Java Persistence API (JPA) module1.1、核心概念
CrudRepository为正在管理的实体类提供了复杂的CRUD功能。示例一、CrudRepository接口【基本上都是字面含义】
//设置了非空 package com.acme; import org.springframework.lang.Nullable; interface UserRepository extends Repository<User, Long> { //如果执行的查询不产生结果,将抛出EmptyResultDataAccessException。在传递给方法的emailAddress为空的情况下会抛出IllegalArgumentException User getByEmailAddress(EmailAddress emailAddress); //如果执行的查询不产生结果,将返回null。也接受null作为emailAddress的值。 @Nullable User findByEmailAddress(@Nullable EmailAddress emailAdress); //如果执行的查询不产生结果,将返回Optional.empty()。在传递给方法的emailAddress为空的情况下会抛出IllegalArgumentException。 Optional<User> findOptionalByEmailAddress(EmailAddress emailAddress); }
View Code
1.3.3、将存储库与多个Spring Data模块一起使用
在应用程序中使用唯一的Spring Data模块使事情变得简单,因此定义范围内的所有存储库接口都绑定到Spring Data模块。有时应用程序需要使用多个Spring Data模块。在这种情况下,存储库定义需要区分持久性技术。Spring Data进入严格的资源库配置模式,因为它检测到类路径上的多个资源库工厂。严格配置需要存储库或域类的详细信息来决定存储库定义的Spring Data模块绑定:1、如果存储库定义扩展了特定于模块的存储库,那么它就是特定的Spring Data模块的有效候选者。
2、如果domain类使用特定于模块的类型注释进行注释,那么它是特定的Spring Data模块的有效候选者。Spring Data模块接受第三方注释(比如JPA的@Entity)或者为Spring Data MongoDB / Spring Data Elasticsearch提供自己的注释,例如@Document。
参看原始文档:地址
相关文章推荐
- 004-spring-data-elasticsearch 3.0.0.0使用【二】-spring-data之定义方法、创建repository实例、从聚合根发布事件
- 006-spring-data-elasticsearch 3.0.0.0使用【四】-spring-data之Elasticsearch Repositories
- 002-es5.4.3结合spring-data-elasticsearch3.0.0.0使用
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
- 005-spring-data-elasticsearch 3.0.0.0使用【三】-spring-data之Spring数据扩展
- Spring Data JPA 简单查询--方法定义规则
- spring data in方法的使用以及动态条件查询+分页
- Spring Data JPA 简单查询--方法定义规则(详解)
- spring 操作elasticsearch查询使用方法
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
- SpringData 学习(3)—— 通过“规范”的方法实现查询
- spring data jpa 单独定义jpaRespoistory方法
- spring data jpa .基本使用,多条件复合查询,报表查询。
- spring-data-jpa 使用方法
- spring data jpa 创建方法名进行简单查询
- 使用SpringData JPAQL获取查询结果query.getResultList()读取后EntityManager会自动关闭
- [原创]java WEB学习笔记105:Spring学习---AOP介绍,相关概念,使用AOP,利用 方法签名 编写 AspectJ 切入点表达式
- Spring Data学习笔记-查询方法
- Spring data JPA中使用Specifications动态构建查询
- Spring Data Repository有趣的定义query方法