S
S
Spring 实战(第五版)
搜索文档…
S
S
Spring 实战(第五版)
Spring 实战(第 5 版)
第一部分 Spring 基础
第 1 章 Spring 入门
第 2 章 开发 Web 应用程序
第 3 章 处理数据
3.1 使用 JDBC 读写数据
3.2 使用 Spring Data JPA 持久化数据
3.2.1 添加 Spring Data JPA 到数据库中
3.2.2 注解域作为实体
3.2.3 声明 JPA repository
3.2.4 自定义 JPA repository
3.3 小结
第 4 章 Spring 安全
第 5 章 使用配置属性
第二部分 集成 Spring
第 6 章 创建 REST 服务
第 7 章 调用 REST 服务
第 8 章 发送异步消息
第 9 章 集成 Spring
第三部分 响应式 Spring
第 10 章 Reactor 介绍
第 11 章 开发响应式 API
第 12 章 响应式持久化数据
第四部分 云原生 Spring
第 13 章 服务发现
第 14 章 配置管理
第 15 章 处理失败和时延
第五部分 部署Spring
第 16 章 使用 SpringBoot Actuator
第 17 章 管理 Spring
第 18 章 使用 JMX 监控 Spring
第 19 章 部署 Spring
由
GitBook
提供支持
3.2.3 声明 JPA repository
在存储库的 JDBC 版本中,显式地声明了希望 repository 提供的方法。但是使用 Spring Data,扩展 CrudRepository 接口。例如,这是一个新的 IngredientRepository 接口:
1
package
tacos
.
data
;
2
3
import
org
.
springframework
.
data
.
repository
.
CrudRepository
;
4
import
tacos
.
Ingredient
;
5
6
public
interface
IngredientRepository
extends
CrudRepository
<
Ingredient
,
String
>
{
7
}
Copied!
CrudRepository 为 CRUD(创建、读取、更新、删除)操作声明了十几个方法。注意,它是参数化的,第一个参数是存储库要持久化的实体类型,第二个参数是实体 id 属性的类型。对于 IngredientRepository,参数应该是 Ingredient 和 String 类型。
也可以这样定义 TacoRepository:
1
package
tacos
.
data
;
2
3
import
org
.
springframework
.
data
.
repository
.
CrudRepository
;
4
import
tacos
.
Taco
;
5
6
public
interface
TacoRepository
extends
CrudRepository
<
Taco
,
Long
>
{
7
}
Copied!
IngredientRepository 和 TacoRepository 之间唯一显著的区别是对于 CrudRepository 的参数不同。在这里,它们被设置为 Taco 和 Long 去指定 Taco 实体(及其 id 类型)作为这个 respository 接口的持久化单元。最后,同样的更改可以应用到 OrderRepository:
1
package
tacos
.
data
;
2
3
import
org
.
springframework
.
data
.
repository
.
CrudRepository
;
4
import
tacos
.
Order
;
5
6
public
interface
OrderRepository
extends
CrudRepository
<
Order
,
Long
>
{
7
}
Copied!
现在有了这三个 repository,可能认为需要为这三个 repository 编写实现,还包括每种实现的十几个方法。但这就是 Spring Data JPA 优秀的地方 —— 不需要编写实现!当应用程序启动时,Spring Data JPA 会动态地自动生成一个实现。这意味着 repository 可以从一开始就使用。只需将它们注入到控制器中,就像在基于 JDBC 的实现中所做的那样。
CrudRepository 提供的方法非常适合用于实体的通用持久化。但是如果有一些基本持久化之外的需求呢?让我们看看如何自定义 repository 来执行域特有的查询。
以前
3.2.2 注解域作为实体
下一个
3.2.4 自定义 JPA repository
最近更新
2yr ago
复制链接