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

Bil*_*ory 3 java orm hibernate jpa dto

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

我在服务对象上有一个方法,PostAd用于发布用户输入的广告.它Ad与另一个被调用的对象有关联AdValues,它包含Ad(标题,价格,描述等)的值

@Entity
public class Ad {
   @OneToMany
   Set<AdValue> values ...
   ...
Run Code Online (Sandbox Code Playgroud)

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

  1. 有两个DTO调用AdDTO,另一个调用AdValuesDTO,调用PostAd方法为PostAd(AdDTO, AdValuesDTO) 〜或〜

  2. 有一个AdDTO包含AdValuesDTO模仿实体结构......这涉及在DTO内有DTO:

    AdDTO {
      Set<AdValuesDTO> adValues ...
    
    Run Code Online (Sandbox Code Playgroud)

然后该PostAd方法被称为PostAd(AdDTO)

或者还有另一种选择吗?

Pas*_*ent 9

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

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

  • 谢谢,我接受了你的建议,在我的POM中添加了推土机,并设法删除了75%的锅炉板代码. (2认同)