想象一下我有一個這樣的物體:
@Entity
@Getter
@Setter
@ToString
@Table(name = "employeeSalary")
public class EmployeeSalary{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "fullName", nullable = false, length = 60)
private String fullName;
@Column(name = "salary", nullable = false)
private double salary;
@Column(name = "month", nullable = false)
@Enumerated(EnumType.STRING)
private Month month;
@Column(name = "year", nullable = false)
private Year year;
}
現在想象一下我這樣創建了 DTO:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class EmployeeSalaryDTO {
private String fullName;
private double salary;
private Month month;
private Year year;
}
問題如下:在這種情況下創建 DTO 真的是一個好習慣嗎?我們可以看到 DTO 和物體是相同的(唯一的區別是 DTO 沒有 id,但讓我們想象在這個 DTO 中也添加 id)創建這個 DTO 是否有意義。因為據我所知,在服務層中操作物體不是一個好主意,它是操作 DTO 然后將此 DTO 轉換為物體的更好選擇,但是正如我們所見,DTO 和物體是相同的,所以它是否有意義當我們在這兩個類中具有 100% 的相似性時創建 DTO?或者無論如何創建它們是一個好習慣?(因為在服務層操作物體不是一個好主意,最好是操作dto然后轉換為物體)
uj5u.com熱心網友回復:
因此,引入另一層作為 DTO 是一個很好的做法。因為在物體上操作資料和操作似乎不是一個好習慣。一個好主意是在 DTO 中操作資料,然后使用模型映射器將它們轉換為物體。因此,總而言之,即使我們在物體和 DTO 中具有完全相同的欄位,擁有 DTO 也是一個好習慣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/513211.html
標籤:春天弹簧靴休眠实体dto
上一篇:如何在休眠中映射主細節?
