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);
}
}