千家信息网

Spring Data JPA 简单查询

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、接口方法整理速查下表针对于简单查询,即JpaRepository接口(继承了CrudRepository接口、PagingAndSortingRepository接口)中的可访问方法进行整理。(1
千家信息网最后更新 2026年10月31日Spring Data JPA 简单查询

一、接口方法整理速查

下表针对于简单查询,即JpaRepository接口(继承了CrudRepository接口、PagingAndSortingRepository接口)中的可访问方法进行整理。(1)先按照功能进行分类整理,分为保存、删除、查找单个、查找多个、其他5类。(2)再将不建议使用的方法置灰,此类方法多为CrudRepository接口、PagingAndSortingRepository接口中定义,后来JpaRepository接口中又定义了替代方法,更方便使用,比如:查找多个对象时,返回 List 比返回 Iterable 更容易处理。

二、五个接口详解

1、CrudRepository接口。

其中T是要操作的实体类,ID是实体类主键的类型。该接口提供了11个常用操作方法。

@NoRepositoryBean  public interface CrudRepository extends Repository {      S save(S entity);//保存       Iterable save(Iterable entities);//批量保存      T findOne(ID id);//根据id 查询一个对象。返回对象本身,当对象不存在时,返回null       Iterable findAll();//查询所有的对象      Iterable findAll(Iterable ids);//根据id列表 查询所有的对象      boolean exists(ID id);//根据id 判断对象是否存在     long count();//计算对象的总个数      void delete(ID id);//根据id 删除      void delete(T entity);//删除一个对象     void delete(Iterable entities);//批量删除,集合对象(后台执行时,一条一条删除)    void deleteAll();//删除所有 (后台执行时,一条一条删除)}

2、PagingAndSortingRepository接口。

该接口继承了CrudRepository接口,提供了两个方法,实现了分页和排序的功能了。

@NoRepositoryBean      CrudRepository {      Iterable findAll(Sort sort);    Page findAll(Pageable pageable);}

3、JpaRepository接口。

该接口继承了PagingAndSortingRepository接口。

同时也继承QueryByExampleExecutor接口,这是个用"实例"进行查询的接口,后续再写文章详细说明。

@NoRepositoryBeanpublic interface JpaRepository        extends PagingAndSortingRepository, QueryByExampleExecutor {        List findAll(); //查询所有对象,返回List    List findAll(Sort sort); //查询所有对象,并排序,返回List    List findAll(Iterable ids); //根据id列表 查询所有的对象,返回List    void flush(); //强制缓存与数据库同步      List save(Iterable entities); //批量保存,并返回对象List     S saveAndFlush(S entity); //保存并强制同步数据库    void deleteInBatch(Iterable entities); //批量删除 集合对象(后台执行时,生成一条语句执行,用多个or条件)    void deleteAllInBatch();//删除所有 (执行一条语句,如:delete from user)    T getOne(ID id); //根据id 查询一个对象,返回对象的引用(区别于findOne)。当对象不存时,返回引用不是null,但各个属性值是null        @Override     List findAll(Example example); //根据实例查询    @Override     List findAll(Example example, Sort sort);//根据实例查询,并排序。}

几点说明:

(1)几个查询、及批量保存方法,和 CrudRepository 接口相比,返回的是 List,使用起来更方便。

(2)增加了 InBatch 删除, 实际执行时,后台生成一条sql语句,效率更高些。相比较而言,CrudRepository 接口的删除方法,都是一条一条删除的,即便是 deleteAll 也是一条一条删除的。

(3)增加了 getOne() 方法,切记,该方法返回的是对象引用,当查询的对象不存在时,它的值不是Null。

4、JpaSpecificationExecutor接口
该接口提供了对JPA Criteria查询(动态查询)的支持。这个接口很有用,具体不粘源码了。


5、Repository接口
这个接口是最基础的接口,只是一个标志性的接口,没有定义任何的方法,那这个接口有什么用了?既然Spring data JPA提供了这个接口,自然是有它的用处,例如,我们有一部分方法是不想对外提供的,比如我们只想提供增加和修改方法,不提供删除方法,那么前面的几个接口都是做不到的,这个时候,我们就可以继承这个接口,然后将CrudRepository接口里面相应的方法拷贝到Repository接口就可以了。


接口 对象 方法 查询 后台 多个 实例 语句 排序 功能 实体 数据 数据库 同步 强制 生成 两个 个数 动态 单个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是科技互联网 上海喔噻互联网科技有限公司 互联网 科技 杭州互联网科技公司 丰台科技园 互联网 广州慧亚互联网科技怎么样 阿里巴巴算科技企业还是互联网 互联网科技中介 崇明区互联网教育科技售后服务 速维有品互联网信息科技(苏州)有限公司 内蒙古九一互联网科技 互联网数据科技专业 保险科技服务互联网营销体系 电子商务与互联网科技的关系 四川互联网展示科技馆设计 互联网高科技行业有哪些企业 上海万顺科技互联网有限公司招聘 科技和互联网行业的特点 现代互联网科技公司 杭州科技互联网公司有哪些 中资互联网科技 上海挚品互联网科技 善班互联网科技 互联网 科技服务平台 玖二柒互联网科技公司待遇 互联网科技寓意 朱啸虎曾投资哪些互联网科技企业 梅州GM互联网络科技有限公司 科技互联网行业投资研究 恒生科技指数 中概互联网
0