DTO 以及它到底是如何工作的?

问题描述 投票:0回答:1

有一些关于 DTO 的问题,我在网上找不到。

1. 使用DTO响应更快

为什么?当您创建一个没有 DTO 的端点时,例如 @GetMapping("/{id}") ,它为您提供了具有 20 列的确切“员工”,但域只需要 3 列,前端人员可以从 Json 中通过 response.Name 获取该数据或响应.姓氏。到底哪个 DTO 更快?因为无论如何,数据都是从数据库中提取的,并且使用 DTO 或不使用 DTO 的速度相同?

2. 无需DTO编辑响应,可以更改数据库中的数据

这怎么可能?例如,当您在 Java 中获得响应时,您必须使用诸如 Save 或 make update 之类的东西,或者 @Query 来更新和更改您在特定端点中获得的响应。那么编辑响应如何可以更改数据库中的某些内容?

3. DTO 对于多个请求更好

因此,如果有人使用 ID 5 调用该端点,而另一个人使用 id 5 调用相同的方法,那么 DTO 不会调用 api 两次?

java jpa dto
1个回答
0
投票

首先,DTO代表数据传输对象。它应该仅由原语或其他 DTO 组成。并且不应该有任何行为。

  1. 使用DTO响应更快 通过线路发送更少的数据需要更少的时间。
  1. 无需DTO编辑响应,可以更改数据库中的数据

使用 Hibernate 时,每个返回的实体都绑定到持久化上下文。当事务运行时,实体的每个突变都会写回持久化实体,而无需调用

repository.save(entity)
  1. DTO 对于多个请求更好

使用 DTO 是缓存友好的。您可以为

id 5
创建一个 DTO 并保留它,假设 60 秒,当对同一 id 的连续调用到达时,控制器返回缓存的 DTO,而不是往返数据库并创建相同的 DTO。

© www.soinside.com 2019 - 2024. All rights reserved.