JPA使用笔记
# Repository
Repository
是Spring Data Commons
的核心接口,它不提供任何方法,只是一个标识,表明任何继承它的接口都是Repository
接口。
# CrudRepository
简单的CRUD
操作
# PagingAndSortingRepository
继承了CrudRepository,并提供了分页和排序操作
# QueryByExampleExecutor
简单的Example
查询
# JpaRepository
继承了PagingAndSortingRepository
、QueryByExampleExecutor
# JpaSpecificationExecutor
提供了多条件查询的支持,并且可以在查询中添加分页和排序。
# SimpleJpaRepository
JpaSpecificationExecutor
的实现类,有JPA
所有接口的默认实现
# QuerydslPredicateExecutor
提供了QueryDsl
的支持,可以通过Predicate
来查询。
QuerydslJpaPredicateExecutor
为其默认实现类
# 查询
# 根据方法名查询
例如:
User findByName(String name);
User findByNameAndAge(String name, Integer age);
User findByNameAndAgeGreaterThan(String name, Integer age);
1
2
3
4
5
2
3
4
5
# 排序
User findFrirstByOrderByAgeDesc();
User findTopByOrderByAgeDesc();
List<User> findFirst10ByOrderByAgeDesc();
List<User> findDistinctUserTop3ByAge(Integer age);
List<User> findByName(String name, Sort sort);
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 分页查询
Page<User> findByName(String name, Pageable pageable);
List<User> findByName(String name, Pageable pageable);
1
2
3
4
5
2
3
4
5
# 遇到的一些问题
# JPA初始化数据库表乱码
在application.yml
中修改数据库连接的url,添加useUnicode=true&characterEncoding=utf8
编辑 (opens new window)
上次更新: 2024/01/08, 15:31:50