向客户端发送数据的最佳实践是啥:返回实体还是 dto? [关闭]
Posted
技术标签:
【中文标题】向客户端发送数据的最佳实践是啥:返回实体还是 dto? [关闭]【英文标题】:What is the best practice for sending data to the client: returning an entity or a dto? [closed]向客户端发送数据的最佳实践是什么:返回实体还是 dto? [关闭] 【发布时间】:2022-01-24 02:44:07 【问题描述】:我不确定我是否应该发送具有所选表的实体以及与之相关的所有表,还是发送具有相关表外键的 DTO,并且只在需要时调用所述表。
返回的实体示例:
@Entity
public class Staff implements Serializable
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String role;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn()
private Gsm gsmDetails;
@OneToMany(mappedBy ="staff", fetch = FetchType.LAZY)
private List<Coupon> coupons = new ArrayList<Coupon>();
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn()
private Voip voip;
@OneToOne()
private Card card;
@OneToOne()
private Phone phone;
//rest of the getters setter and consturctors
DTO 示例:
public class staffDto
private Long id;
private String name;
private String role;
private Long gsmId;
private List<Long> couponID;
private long voipID;
private long cardId;
private long phoneId;
我不知道避免不必要地延长加载时间或臃肿的最佳方法。
【问题讨论】:
【参考方案1】:纯粹从我的观点和观点来看,我会推荐DTO。
在大多数情况下,我们希望隐藏数据库结构。
我绝对不是这个主题的专家,我更像是一个前端 - 角度开发人员。不过,我认为这一点回答了你的问题。
我在这里发送了一个类似问题的链接,其中很好地解释了为什么更喜欢 DTO 而不是实体。
https://***.com/a/49914242/8366174
【讨论】:
谢谢,这很有见地,我会相应地编码。以上是关于向客户端发送数据的最佳实践是啥:返回实体还是 dto? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
数据库设计模型实体关系图n实体与1:m实体的关系 - 最佳实践
在 ASP.NET WebApi 中路由相关实体的最佳实践是啥