向客户端发送数据的最佳实践是啥:返回实体还是 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? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

打包结构化 Spring 项目的最佳实践是啥?

GWT 将大量数据从服务器发送到客户端的最佳实践

数据库设计模型实体关系图n实体与1:m实体的关系 - 最佳实践

在 ASP.NET WebApi 中路由相关实体的最佳实践是啥

在rest apis(spring)中响应个性化对象的最佳实践是啥[关闭]

在 JSON 中传递美元金额的最佳实践是啥?