Spring Boot————Spring Data JPA简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014745069/article/details/84919267

引言

JPA是Java 持久化API的缩写,是一套Java数据持久化的规范,

Spring Data

Spring Data项目的目的是为了简化构建基于Spring 框架应用的数据访问技术,包括对关系型数据库的访问支持。另外也包含非关系型数据库、Map-Reduce框架、云数据服务等等。

Spring Data包含的子项目有:

Spring Data Commons

Spring Data JPA

Spring Data KeyValue

Spring Data LDAP

Spring Data MongoDB

Spring Data Gemfire

Spring Data REST

Spring Data Redis

Spring Data for Apache Cassandra

Spring Data for Apache Solr

Spring Data Couchbase (community module)

Spring Data Elasticseach (community module)

Spring Data Neo4j (community module)

Spring Data 的特点

Spring Data的宗旨就是统一数据访问的API。 所以它为我们提供使用统一的API来对数据访问层进行操作;这主要是Spring Data Commons项目来实现的。Spring Data Commons让我们在使用关系型或非关系型数据访问技术时都基于Spring 提供的统一标准,标准包括CRUD、排序和分页的相关操作。

统一的Repository接口

Repository<T, ID extends Serializable>:统一接口

RevisionRepository<T, ID extends Serializable, N extends Number & Comparable<N>>:基于乐观锁机制

CrudRepository<T, ID extends Serializable> : 基本CRUD操作

PagingAndSortingRepository<T, ID extends Serializable>:基本CRUD及分页

数据访问模板类

如:MongoTemplate、RedisTemplate等

Spring Data JPA

1、JpaRepository基本功能

编写接口继承JpaRepository既有crud及分页等基本功能

2、定义符合规范的方法命名

在接口中只需要声明符合规范的方法,即拥有对应的功能:

interface PersonRepository extends Repository<User, Long> {

  List<Person> findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname);

  // Enables the distinct flag for the query
  List<Person> findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname);
  List<Person> findPeopleDistinctByLastnameOrFirstname(String lastname, String firstname);

  // Enabling ignoring case for an individual property
  List<Person> findByLastnameIgnoreCase(String lastname);
  // Enabling ignoring case for all suitable properties
  List<Person> findByLastnameAndFirstnameAllIgnoreCase(String lastname, String firstname);

  // Enabling static ORDER BY for a query
  List<Person> findByLastnameOrderByFirstnameAsc(String lastname);
  List<Person> findByLastnameOrderByFirstnameDesc(String lastname);
}

3、@Query自定义查询,定制查询SQL

4、 Specification查询(Spring Data JPA支持JPA2.0的Criteria查询)

Spring Data结构图

来看一下Spring Data JPA相互间的结构关系:

可以看到,Spring Data JPA是针对于JPA规范开发的一套上层统一接口。它的实现有Hibernate、Toplink、OpenJPA等,因此,只要掌握了Spring Data JPA中数据访问用法,在实际生产中选择要实现的底层框架,就可以省去时间学习五花八门的实际数据访问框架,节约了学习成本。

综上,就是关于Spring Data  JPA的相关介绍。

猜你喜欢

转载自blog.csdn.net/u014745069/article/details/84919267