zoukankan      html  css  js  c++  java
  • 学习Spring-Data-Jpa(七)---JpaRepository

      之前我们学习的Repository都是Spring-Data为了兼容NoSQL而进行的一些抽象封装,从JpaRepository开始是对关系型数据库进行抽象封装。JpaRepository位于spring-data-jpa项目下的repository包中,
    继承了PagingAndSortingRepository和QueryByExampleExecutor接口,因此也就拥它们的全部方法。并且将默认实现的查询结果变成了List。并且新增了刷新更改到数据库、保存并刷新、批量删除等方法。使用方
    法同之前的Repository一样我们直接继承它就好了,JpaRepository也是我们最常继承的接口。

    @NoRepositoryBean //不要生成该类的代理类
    public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
    
        /*
         * 重写父接口CrudRepository的方法,将查询结果由Iterable变成List。
         */
        @Override
        List<T> findAll();
    
        /*
         * 重写父接口PagingAndSortingRepository的方法,将查询结果由Iterable变成List。
         */
        @Override
        List<T> findAll(Sort sort);
    
        /*
         *    重写父接口CrudRepository的方法,将查询结果由Iterable变成List。
         */
        @Override
        List<T> findAllById(Iterable<ID> ids);
    
        /*
         * 重写父接口CrudRepository的方法,将查询结果由Iterable变成List。
         */
        @Override
        <S extends T> List<S> saveAll(Iterable<S> entities);
    
        /**
         * 新增方法:刷新挂起的更改到数据库。
         */
        void flush();
    
        /**
         * 新增方法:保存实体并立即刷新更改。
         */
        <S extends T> S saveAndFlush(S entity);
    
        /**
         * 新增方法:批量删除给定实体。
         */
        void deleteInBatch(Iterable<T> entities);
    
        /**
         * 新增方法:批量删除所有。
         */
        void deleteAllInBatch();
    
        /**
         * 返回对具有给定标识符的实体的引用。根据JPA提供商的实现方式,这很可能总是返回一个实例,
         * 并在第一次访问时抛出javax.persistence.EntityNotFoundException。其中一些会立即拒绝无效的标识符。
         */
        T getOne(ID id);
    
        /*
         * 重写父接口QueryByExampleExecutor的方法,将查询结果由Iterable变成List。
         */
        @Override
        <S extends T> List<S> findAll(Example<S> example);
    
        /*
         * 重写父接口QueryByExampleExecutor的方法,将查询结果由Iterable变成List。
         */
        @Override
        <S extends T> List<S> findAll(Example<S> example, Sort sort);
    }
    源码地址:https://github.com/caofanqi/study-spring-data-jpa
  • 相关阅读:
    关于PPTP不能打开部分网页
    在MarS Board上搭建PPTP
    Mars Board上无法使用apt-get
    在MarS board上烧录系统镜像
    PHP-变量(1)
    在KEIL 4.72中使用STM32的3.5固件库
    android SDK中java环境变量配置
    android SDK中打开AVD时提示PANIC: Could not open:XX
    ckplayer通过Mod-H264支持随意拖动功能
    430学习笔记-内置ADC12
  • 原文地址:https://www.cnblogs.com/caofanqi/p/11845994.html
Copyright © 2011-2022 走看看