簡體   English   中英

向客戶端發送數據的最佳實踐是什么:返回實體還是 dto?

[英]What is the best practice for sending data to the client: returning an entity or a 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

在大多數情況下,我們希望隱藏數據庫結構。

我絕對不是這個主題的專家,我更喜歡前端 - angular 開發人員。 不過,我認為這一點回答了你的問題。

在這里,我發送了一個類似問題的鏈接,其中很好地解釋了為什么更喜歡 DTO 而不是實體。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM