我们将使用DTO向表示层发送数据和从表示层发送数据。
我在名为PostAd
的服务对象上有一个方法,它发布用户输入的广告。 Ad
与另一个名为AdValues
的对象有关联,其中包含Ad
的值(标题,价格,说明等)
@Entity
public class Ad {
@OneToMany
Set<AdValue> values ...
...
我想知道DTO架构的优点是什么:
有两个DTO名为AdDTO
,另一个称为AdValuesDTO
,并将PostAd
方法称为PostAd(AdDTO, AdValuesDTO)
〜或〜
拥有一个AdDTO
,其中包含模仿实体结构的AdValuesDTO
...这涉及在DTO中设置DTO:
AdDTO {
Set<AdValuesDTO> adValues ...
然后PostAd
方法被称为PostAd(AdDTO)
还是有另一种选择吗?
答案 0 :(得分:9)
两者都可以,但是使用后一种方法,您还可以使用DTO将从服务器发送到客户端。而且由于DTO已经很难并且维护费用昂贵,所以你真的不想像耶稣那样将它们与面包相乘。
因此,根据我的经验,当您使用DTO时,您实际上最终会在您的实体中并行构建对称结构,您可以在客户端和服务器之间双向使用。这使得像[{3}}这样的映射解决方案的使用成为可能,或者至少更容易(并且任何使得使用DTO更少痛苦的东西都是受欢迎的)。