Spring Data JPA(后续...)

本文探讨了Spring Data JPA的各个关键概念,包括Repository的继承体系,如CrudRepository、PagingAndSortingRepository、QueryByExampleExecutor和JpaRepository。此外,还介绍了用于分页和排序的Page、Slice、Pageable和Sort接口,帮助读者全面了解如何在Spring Data JPA中实现高效的数据操作。
摘要由CSDN通过智能技术生成

Spring Data JPA

接口继承关系:

在这里插入图片描述

Repository:

CrudRepository

package org.springframework.data.repository;
import java.util.Optional;

@NoRepositoryBean
public interface CrudRepository<T, ID> extends Repository<T, ID> {
   
    <S extends T> S save(S var1);

    <S extends T> Iterable<S> saveAll(Iterable<S> var1);

    Optional<T> findById(ID var1);

    boolean existsById(ID var1);

    Iterable<T> findAll();

    Iterable<T> findAllById(Iterable<ID> var1);

    long count();

    void deleteById(ID var1);

    void delete(T var1);

    void deleteAll(Iterable<? extends T> var1);

    void deleteAll();
}

PagingAndSortingRepository

package org.springframework.data.repository;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

@NoRepositoryBean
public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> {
   
    Iterable<T> findAll(Sort var1);

    Page<T> findAll(Pageable var1);
}

QueryByExampleExecutor

package org.springframework.data.repository.query;

import java.util.Optional;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

public interface QueryByExampleExecutor<T> {
   
    //根据“实例”查找一个对象。
    <S extends T> Optional<S> findOne(Example<S> var1);

    //根据“实例”查找一批对象
    <S extends T> Iterable<S> findAll(Example<S> var1);

    //根据“实例”查找一批对象,且排序
    <S extends T> Iterable<S> findAll(Example<S> var1, Sort var2);

    //根据“实例”查找一批对象,且排序和分页
    <S extends T> Page<S> findAll(Example<S> var1, Pageable var2);

    //根据“实例”查找,返回符合条件的对象个数
    <S extends T> long count(Example<S> var1);

    //根据“实例”判断是否有符合条件的对象
    <S extends T> boolean exists(Example<S> var1);
}

JpaRepository

package org.springframework.data.jpa.repository;

import java.util.List;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Sort;
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.QueryByExampleExecutor;

@NoRepositoryBean
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
   
    List<T> findAll();

    List<T> findAll(Sort var1);

    List<T> findAllById(Iterable<ID> var1);

    <S extends T> List<S> saveAll(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);
}

Page:

package org.springframework.data.domain;

import java.util.Collections;
import java.util.function.Function;

public interface Page<T> extends Slice<T> {
   
    static <T> Page<T> empty() {
   
        return empty(Pageable.unpaged());
    }

    static <T> Page<T> empty(Pageable pageable) {
   
        return new PageImpl(Collections.emptyList(), pageable, 0L);
    }

    //@常用:返回分页总数。
    int getTotalPages();

    //@常用:返回元素总数。
    long getTotalElements();

    <U> Pa
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值