源码地址:http://download.csdn.net/download/u010503822/10020714
注明:该内容来自Andy讲师视频整理
Repository接口
是个springdata的核心接口,它不提供任何方法,开发者需要在自己定义的接口中什么需要的方法
源码:
public interface Repository<T, ID extends Serializable> {
注意:
1.Repository接口是个空接口,标记接口
2.如果定义的接口继承Repository,会被ioc容器识别
3.实际可以通过@RepositoryDefinition注解来代替继承Repository接口
4.查询方法以find|read|get开头(比如getBy findBy)
5.涉及查询条件,条件的属性用条件关键字连接,注意,条件属性以首字母大写
6.使用@Query注解定义JPQL语句实现更灵活的查询。
源码:
@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();
PagingAndSortingRepository接口
该接口提供分页和排序
源码:
@NoRepositoryBean
public interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> {
Iterable<T> findAll(Sort var1);
Page<T> findAll(Pageable var1);
}
其他接口
JpaRepository:差所有实体,排序,查所有实体,执行缓存和数据库同步
JpaSpecificationExecutor
不属于Repository层,实现一组jpa Criteria查询相关的方法,封装jpa Criteria查询条件
通过使用匿名内部类的方式来创建该接口的对象
自定义 Repository:可自己定义一个MyRepository接口