首页 > 其他分享 >Spring Boot中CrudRepository与JpaRepository

Spring Boot中CrudRepository与JpaRepository

时间:2023-09-25 12:02:34浏览次数:27  
标签:var1 Spring void Boot CrudRepository List findAll Iterable


自学Spring Boot的时候看到书上在介绍Spring Data JPA的时候,用的是JpaRepository接口,但看很多的博客用的是CrudRepository,为了搞明白两者的关系,决定好好研究下,先看下两者的接口代码:

 

@NoRepositoryBean
public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> {
    <S extends T> S save(S var1);
    <S extends T> Iterable<S> save(Iterable<S> var1);
    T findOne(ID var1);
    boolean exists(ID var1);
    Iterable<T> findAll();
    Iterable<T> findAll(Iterable<ID> var1);
    long count();
    void delete(ID var1);
    void delete(T var1);
    void delete(Iterable<? extends T> var1);
    void deleteAll();
}
@NoRepositoryBean
public interface JpaRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
    List<T> findAll();
    List<T> findAll(Sort var1);
    List<T> findAll(Iterable<ID> var1);
    <S extends T> List<S> save(Iterable<S> var1);
    void flush();
    <S extends T> S saveAndFlush(S var1);
    void deleteInBatch(Iterable<T> var1);
    void deleteAllInBatch();
    T getOne(ID var1);
    <S extends T> List<S> findAll(Example<S> var1);
    <S extends T> List<S> findAll(Example<S> var1, Sort var2);
}

看一下他们的继承关系

Spring Boot中CrudRepository与JpaRepository_JPA

事实上,CrudRepository和PagingAndSortingRepository由Spring Data提供;JpaRepository 由Spring Data JPA提供,而Spring Data JPA又是Spring Data的一个子项目,这就是两者的关系。通常,最好的想法是使用  CrudRepository  或  PagingAndSortingRepository,  具体取决于是否需要排序和分页。如果可能,应该避免使用 JpaRepository ,因为它将存储库与JPA持久性技术联系起来,并且在大多数情况下,我们甚至可能不会使用它提供的额外方法。

 

参考:


http://makaidong.com/youhan26/1/976_10156939.html

 

标签:var1,Spring,void,Boot,CrudRepository,List,findAll,Iterable
From: https://blog.51cto.com/u_6947107/7594394

相关文章

  • 3.Spring之IoC基础
    IoC容器的概念IoC容器就是具有依赖注入功能的容器,IoC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IoC容器进行组装。在Spring中BeanFactory是IoC容器的实际代表者。在以前都是使用BeanFactory,但是现在基本......
  • Spring扩展接口(1):ApplicationContextInitializer
    在此系列文章中,我总结了Spring扩展接口,以及各个扩展点的使用场景。并整理出一个bean在spring中从被加载到初始化到销毁的所有可扩展点的顺序调用图。这样,我们也可以看到bean是如何一步步加载到spring容器中的。ApplicationContextInitializerorg.springframework.context.App......
  • Spring 04 SpringAOP 切面编程
    Aop:面向切面,在不修改代码的前提下对方法进行增强 pom.xml<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.10.RELEASE</version>......
  • springsecurity 6.x
    springboot+springsecurity6.x的配置securityConfig.java登录页面的DIY@BeanpublicSecurityFilterChainsecurityFilterChain(HttpSecurityhttp)throwsException{http.authorizeHttpRequests(author->author.requestMatchers("/......
  • 【Redis】SpringBoot集成Redis事务-亲测
    大家好,我是mep。今天一起来探讨一下Redis缓存的问题,SpringBoot如何集成Redis网上文章很多,基本都是介绍如何配置redisTemplate,如何调用,本文就不过多介绍了。这次我们研究的是:Redis的事务。首先抛出一个问题,Redis支持事务吗?  答案肯定是支持,不然也不需要我们在这里探讨了。......
  • 【主流技术】MongoTemplate与Spring Boot项目集成分享(附CURD技巧)
    目录前言一、表结构特点1.1Json格式1.2实体映射二、条件构造2.1Criteria与Query的区别2.2简单条件2.3复杂条件三、如何选用接口3.1MongoRepository3.2MongoTemplate3.3两者对比四、常见API4.1增·insert4.2删·delete4.3改·update4.3.1update()与save()的区别4.3.2update......
  • Uboot到底如何启动内核
    原文:https://blog.51cto.com/weidongshan/66115371.uboot启动内核的代码缩减如下:Uboot1.16/lib_arm/board.c中start_armboot()函数调用/common/main.c中main_loop()函数,在main_loop()中有uboot启动内核的代码:s=getenv("bootcmd");debug("###main_loop:bootcmd=\"%s\&quo......
  • SpringBoot发送带文件的Post请求
    使用httpclient发送一个带文件参数的Post请求Pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apac......
  • uboot命令行启动kernel
    原文:https://blog.csdn.net/motianjie/article/details/131244104uboot命令行启动内核1:开机停留在uboot界面,即uboot处于board_r.c中的run_main_loop()的死循环中2:确保rootfs,kernel和dts已烧写在emmc或者sd卡3:setenvbootargs"CONFIG_BOOTARGS_LOGLEVEL\ "root=${mmcroot}......
  • spring boot错误之-Error (3, 32) java 程序包org springframework boot不存在
    问题:springboot错误之-Error(3,32)java程序包orgspringframeworkboot不存在用IDEA创建springboot,遇到上面的问题(我这里maven用的3.6.1版本)解决方法:在Settings里面,Maven路径和settings.xml要设置正确org.springframework.boot版本更改为2.1.0.RELEASE即可......