Mapstruct并限制对象映射的深度

时间:2017-08-09 15:18:38

标签: java mapstruct

我目前正在使用MapStruct将数据传输对象(DTO)映射到实体,反之亦然。我注意到最新的稳定版本没有提供"开箱即用"用于检测周期的功能,但RC1版本使用@Context注释。

目前,MapStruct工作得很好但是由于这个DTO和实体在这个应用程序中的设置方式,它可能会将对象映射到不必要的深度(有时它只会映射数据库的重要部分)对象)。

1 个答案:

答案 0 :(得分:0)

“开箱即用”支持很可能意味着您必须对MapStruct事物具有运行时依赖性。我们不希望这样,因此@Context已添加到下一个1.2.0版本中。

为了避免在某些级别进行不必要的映射,您必须明确使用@Mapping(ignore = true)和相应的targetsource

还有一个功能请求#1152,允许用户显式阻止某些访问者访问,因此总是被忽略。与jackson @JsonIgnore类似的东西。