前言
Spring Data Elasticsearch项目核心概念使用ElasticSearch搜索引擎开发解决方案,我们为文档的存储、查询、排序和分类提供一个更高级别的抽象模板,你会发现这与Spring框架里的Spring Data solr和 mongodb的支持有相似之处。
项目元数据
- 版本控制- https://github.com/spring-projects/spring-data-elasticsearch
- 错误追踪- https://jira.spring.io/browse/DATAES
- 版本库 - https://repo.spring.io/libs-release
- 里程碑库 - https://repo.spring.io/libs-milestone
- 快照库 - https://repo.spring.io/libs-snapshot
要求
需要 Elasticsearch 0.20.2 以上,如果使用Embedded Node Client,则可选择也可以不要。
1. 使用Spring Data Repositories
Spring Data Repositories的目标是为了显着的降低对于访问不同的数据库,数据访问层实现所需要的代码量。
这章节解释了Spring Data Repositories的接口与核心概念,该章节的内容来自Spring Data Commons模块,它使用JPA模块的配置和代码实例,改变以往所使用的xml的配置
1.1 核心概念
Spring Data Repositories抽象的核心接口是Repository(可能不那么令人吃惊),它将实体类和实体类的ID作为参数,此接口主要用作标记接口,以捕获要使用的类型,并帮助您方便扩展此接口。CrudRepository为实体类的管理提供方便的增删改查功能。
例1. CrudRepository接口
public interface CrudRepository<T, ID extends Serializable>
extends Repository<T, ID> {
<S extends T> S save(S entity);
Optional<T> findById(ID primaryKey);
Iterable<T> findAll();
long count();
void delete(T entity);
boolean existsById(ID primaryKey);
// … more functionality omitted.
}
save:实体类保存
findById:通过id查找实体类
findAll:查找所有
count:返回实体类的总数
delete:删除实体类
existsById:检查是否存在
我们也提供一些其他接口如JpaRepository、MongoRepository,这些接口继承CrudRepository而且暴露底层持久化技术的能力,除了比较通用的持久化接口,如CrudRepository