CrudRepository基础

本文详细介绍了Spring Data JPA中的CrudRepository接口,包括基本的实体类操作方法,如保存、查找、删除等,并对比了JpaRepository的区别,以及如何在实际应用中选择合适的接口进行重写以实现自定义查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CrudRepository基础

一.基础

CrudRepository接口提供了最基本的对实体类的添删改查操作

–T save(Tentity);//保存单个实体
–Iterable save(Iterable<?extends T> entities);//保存集合
–T findOne(IDid);//根据id查找实体
–boolean exists(IDid);//根据id判断实体是否存在
–Iterable findAll();//查询所有实体,不用或慎用!
–long count();//查询实体数量
–void delete(IDid);//根据Id删除实体
–void delete(Tentity);//删除一个实体
–void delete(Iterable<?extends T> entities);//删除一个实体的集合

二.与JpaRepository的不同

PagingAndSortingRepository 继承CrudRepository
JpRepository 继承 PagingAndSortingRepositor

​ 也就是说, CrudRepository 提供基本的增删改查;PagingAndSortingRepository 提供分页和排序方法;JpaRepository 提供JPA需要的方法。在使用的时候,可以根据具体需要选中继承哪个接口。

三.重写JPA查询的方法

在这里插å¥å›¾ç‰‡æè¿°

例:

package com.cy.repository;


import com.cy.entity.Product;
import org.springframework.data.repository.CrudRepository;

import java.util.List;
import java.util.Optional;

public interface ProductRepository extends CrudRepository<Product,String> {
    List<Product> findByName(String name);
    Optional<Product> findById(String id);

}

分别根据name和id在数据库中查找相应的列。

package com.cy.service;

import com.cy.entity.Product;
import com.cy.repository.ProductRepository;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;


@Service
public class ProductService {
    @Resource
    ProductRepository pr;

    public Iterable<Product> findall() {
        return pr.findAll();
    }

    public List<Product> findByName(String name) {
        return pr.findByName(name);
    }
    public Optional<Product> findById(String id){
        return pr.findById(id);
    }

    public Product save(Product product){
        return pr.save(product);
    }
    public void deleteById(String id){
        pr.deleteById(id);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值