全⽹最全JPA总结:《SpringDataJPA⼊门实战与进阶》《Spring Data JPA ⼊门 实战 进阶 》
【部分 基础知识】
第1章 初识Spring Data JPA 2
1.1 Spring Boot和JPA演⽰ 2
1.2 JPA如何整合MySQL数据库 8
1.2.1 切换MySQL数据源 8
1.2.2 Spring Data JPA测试⽤例的写法 10
1.3 整体认识JPA 11
1.3.1 市场上ORM框架的对⽐ 11
1.3.2 JPA简介和开源实现 12
1.4 认识Spring Data 13
1.4.1 Spring Data简介 13
1.4.2 Spring Data的⼦项⽬ 14
1.5 本章⼩结 15
第2章 全⾯掌握Spring Data Commons之Repository 16
2.1 Spring Data Commons的依赖关系 16
2.2 Repository接⼝ 17
2.2.1 查看Repository源码 17
2.2.2 Repository类层次关系 17
2.2.3 Repository接⼝的实际案例 19
2.3 CrudRepository接⼝ 21
2.4 PagingAndSortingRepository接⼝ 23
2.4.1 PagingAndSortingRepository的源码 23
2.4.2 PagingAndSortingRepository的使⽤案例 24
2.5 JpaRepository接⼝ 25
2.6 Repository的实现类SimpleJpaRepository 26
2.7 Repository接⼝的启发 27
2.8 本章⼩结 28
第3章 定义查询⽅法的命名语法与参数 29
3.1 定义查询⽅法的配置和使⽤⽅法 29
3.1.1 直接通过⽅法名实现CRUD步骤 30
3.1.2 选择性暴露CRUD⽅法 30
3.2 ⽅法的查询策略设置 31
3.3 定义查询⽅法的语法 32
3.3.1 语法剖析 32
3.3.2 关键源码 34
3.4 特定类型的参数:Sort和Pageable 36
3.5 限制查询结果:First和Top 38
druid连接池配置详解3.6 @NonNull、@NonNullApi和@Nullable关键字 38
3.7 给我们的⼀些思考 39
3.8 本章⼩结 43
第4章 利⽤Repository中的⽅法返回值来解决实际问题 44
4.1 Repository的返回结果 44
4.1.1 ⾃定义Streamable 46
4.1.2 返回结果类型List/Stream/Page/Slice 46
4.1.3 Repository对Feature/CompletableFuture异步返回结果的⽀持 52 4.1.4 对Reactive的⽀持:Flux与Mono 53
4.1.5 ⼩结 53
4.2 常见的DTO返回结果的⽀持⽅法 56
4.2.1 Projections概念 56
4.2.2 种⽅法:新建⼀张表的不同Entity 57
4.2.3 第⼆种⽅法:直接定义⼀个UserOnlyNameEmailDto 58
4.2.4 第三种⽅法:返回结果是⼀个POJO的接⼝ 60
4.2.5 写查询⽅法的⼀个⼩技巧 62
4.3 本章⼩结 62
第5章 @Query语法详解及其应⽤ 63
5.1 快速体验@Query的⽅法 63
5.2 JpaQueryLookupStrategy关键源码剖析 64
5.3 @Query的基本⽤法 66
5.3.1 JPQL的语法 67
5.3.2 @Query的⽤法案例 68
5.3.3 @Query的排序 68
5.3.4 @Query的分页 69
5.3.5 @Param的⽤法 70
5.4 @Query之Projections应⽤返回指定DTO 70
5.4.1 利⽤UserDto类 72
5.4.2 利⽤UserDto接⼝ 73
5.5 @Query动态查询解决⽅法 74
5.6 本章⼩结 77
第6章 @Entity的常⽤注解及Java多态场景应⽤ 78
6.1 JPA协议中关于实体的相关规定 78
6.2 实体⾥⾯常见的注解 79
6.3 ⽣成注解的⼩技巧 85
6.4 联合主键 86
6.4.1 如何通过@IdClass实现联合主键 86
6.4.2 @Embeddable与@EmbeddedId注解的使⽤ 88
6.5 如何实现实体之间的继承关系 89
6.5.1 @Inheritance(strategy?=?InheritanceType.SINGLE_TABLE) 90
6.5.2 @Inheritance(strategy?=?InheritanceType.JOINED) 91
6.5.3 @Inheritance(strategy?=?InheritanceType.TABLE_PER_CLASS) 93 6.5.4 关于继承关系的经验之谈 94
6.6 本章⼩结 95
第7章 实体之间关联关系注解的正确使⽤ 96
7.1 @OneToOne 96
7.1.1 @OneToOne的源码解读 98
7.1.2 mappedBy的注意事项 99
7.1.3 CascadeType的⽤法 99
7.1.4 orphanRemoval的属性⽤法 100
7.1.5 主键和外键都是同⼀个字段 101
7.1.6 @OneToOne延迟加载下只需要ID值 102
7.1.7 @OneToOne的实践 104
7.2 @JoinCloumns和@JoinColumn 105
7.3 @ManyToOne和@OneToMany 106
7.4 @ManyToMany 110
7.4.1 利⽤@ManyToOne和@OneToMany表达多对多的关联关系 112
7.4.2 @ManyToMany的实践 114
7.5 本章⼩结 114
第8章 Jackson在实体⾥⾯的注解详解 115
8.1 Jackson的基本语法 115
8.1.1 三个核⼼模块 116
8.1.2 Jackson提供的扩展jar包 116
8.1.3 Jackson中常⽤的⼀些注解 117
8.1.4 实例 118
8.2 Jackson和Spring的关系 121
8.2.1 应⽤场景⼀:Spring MVC的View层 121
8.2.2 应⽤场景⼆:Open-Feign 121
8.2.3 应⽤场景三:Redis⾥⾯ 122
8.2.4 应⽤场景四:JMS消息序列化 122
8.3 Jackson的原理分析 123
8.3.1 Jackson的可见性原理分析 123
8.3.2 反序列化重要的⽅法 124
8.3.3 Module的加载机制 126
8.4 Jackson与JPA常见的问题 127
8.4.1 如何解决死循环问题 127
8.4.2 JPA实体JSON序列化的常见报错及解决⽅法 128
8.4.3 推荐的配置项 129
8.4.4 JSON序列化和Java序列化 131
8.5 本章⼩结 131
【第⼆部分 ⾼阶⽤法与实例】
第9章 QueryByExampleExecutor的⽤法和原理分析 135 9.1 QueryByExampleExecutor的⽤法 135
9.1.1 基本⽅法 135
9.1.2 使⽤案例 136
9.2 QueryByExampleExecutor的语法 140
9.2.1 Example的语法详解 140
9.2.2 ExampleMatcher⽅法概述 141
9.2.3 初始化ExampleMatcher实例的⽅法 142
9.2.4 ExampleMatcher的语法 143
9.2.5 ExampleMatcher的完整例⼦ 145
9.2.6 使⽤QueryByExampleExecutor时需要考虑的因素 146 9.3 QueryByExampleExecutor的实现原理 146
9.3.1 QueryByExampleExecutor的源码分析 146
9.3.2 JpaSpecificationExecutor的接⼝结构 148
9.3.3 通过QBE反向思考JpaSpecificationExecutor 149
9.4 本章⼩结 149
第10章 JpaSpecificationExecutor的实现原理 150
10.1 JpaSpecificationExecutor的使⽤案例 150
10.2 JpaSpecificationExecutor的语法详解 154
10.2.1 Root root 156
10.2.2 CriteriaQuery query 156
10.2.3 CriteriaBuilder 157
10.3 JpaSpecificationExecutor的原理分析 158
10.4 JpaSpecificationExecutor实战 160
10.4.1 ⾃定义MySpecification 161
10.4.2 利⽤Specification创建以search为查询条件的RESTful API 163 10.5 本章⼩结 165
第11章 Querydsl在JPA中的应⽤ 166
11.1 Querydsl快速⼊门 166
11.2 Querydsl的语法 170
11.2.1 QuerydslPredicateExecutor 170
11.2.2 QuerydslBinderCustomizer 172
11.2.3 类型安全的应⽤ 174
11.3 Querydsl对WebMVC的⽀持
及源码分析 175
11.3.1 @QuerydslPredicate注解 175
11.3.2 QuerydslPredicateArgument-
Resolver源码分析 177
11.4 本章⼩结 179
第12章 如何⾃定义Repository 180
12.1 EntityManager简介 180
12.1.1 EntityManager的常⽤⽅法 180
12.1.2 EntityManager的使⽤ 182
12.2 @EnableJpaRepositories详解 183
12.2.1 @EnableJpaRepositories的语法 183
12.2.2 @EnableJpaRepositories的默认加载⽅式 185
12.3 ⾃定义Repository的实现类的⽅法 186
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论