JPA和DTO,创建DTO的最佳方式?

时间:2010-08-08 19:21:01

标签: java hibernate orm jpa dto

我们将使用DTO向表示层发送数据和从表示层发送数据。

我在名为PostAd的服务对象上有一个方法,它发布用户输入的广告。 Ad与另一个名为AdValues的对象有关联,其中包含Ad的值(标题,价格,说明等)

@Entity
public class Ad {
   @OneToMany
   Set<AdValue> values ...
   ...

我想知道DTO架构的优点是什么:

  1. 有两个DTO名为AdDTO,另一个称为AdValuesDTO,并将PostAd方法称为PostAd(AdDTO, AdValuesDTO) 〜或〜

  2. 拥有一个AdDTO,其中包含模仿实体结构的AdValuesDTO ...这涉及在DTO中设置DTO:

    AdDTO {
      Set<AdValuesDTO> adValues ...
    
  3. 然后PostAd方法被称为PostAd(AdDTO)

    还是有另一种选择吗?

1 个答案:

答案 0 :(得分:9)

两者都可以,但是使用后一种方法,您还可以使用DTO将服务器发送到客户端。而且由于DTO已经很难并且维护费用昂贵,所以你真的不想像耶稣那样将它们与面包相乘。

因此,根据我的经验,当您使用DTO时,您实际上最终会在您的实体中并行构建对称结构,您可以在客户端和服务器之间双向使用。这使得像[{3}}这样的映射解决方案的使用成为可能,或者至少更容易(并且任何使得使用DTO更少痛苦的东西都是受欢迎的)。