Spring Data 作为SpringSource的其中一个父项目, 旨在统一和简化对各类型持久化存储, 而不拘泥于是关系型数据库还是NoSQL 数据存储。
无论是哪种持久化存储, 数据访问对象(或称作为DAO,即Data Access Objects)通常都会提供对单一域对象的CRUD (创建、读取、更新、删除)操作、查询方法、排序和分页方法等。Spring Data则提供了基于这些层面的统一接口(CrudRepository,PagingAndSortingRepository)以及对持久化存储的实现。
你可能接触过某一种Spring 模型对象——比如JdbcTemplate——来编写访问对象的实现。基于Spring Data的数据访问对象, 我们只需定义和编写一些查询方法的接口(基于不同的持续化存储, 定义有可能稍有不同)。Spring Data会在运行时间生成正确的实现。 请看下面的例子:
public interface UserRepository extends MongoRepository<User, String> {
@Query("{ fullName: ?0 }")
List<User> findByTheUsersFullName(String fullName);
List<User> findByFullNameLike(String fullName, Sort sort);
}
...
Autowired UserRepository repo;
本文将比较两个JPA的子项目, MongoDB和Neo4j。JPA是J2EE的一部分, 它定义了一系列用于操作关系型数据库和O/R映射的API。 MongoDB是一种可扩展的、高性能的、开源的、面向文档的数据库。Neo4j则是一种图形数据库,一种完整的用于存储图形数据的事务性数据库。
时间: 2024-10-25 18:19:14