向客户端发送数据的最佳做法是什么:返回实体或dto



我不确定是应该发送具有所选表和与其相关的所有表的实体,还是发送具有相关表的外键并仅在需要时调用所述表的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;

我不知道最好的方法来避免不必要的长加载时间或膨胀。

纯粹从我的角度来看,我建议DTO

在大多数情况下,我们希望隐藏数据库结构。

我绝对不是这个话题的专家,我更像是一个前端的开发者。尽管如此,我认为这一点回答了你的问题。

在这里,我发送了一个类似问题的链接,其中很好地解释了为什么更喜欢DTO而不是生殖器。

https://stackoverflow.com/a/49914242/8366174

相关内容

  • 没有找到相关文章

最新更新