Java ModelMapper在对象中映射对象

时间:2019-05-28 08:13:16

标签: java spring spring-boot modelmapper

我有以下DTO和VO:

VO

public class ProjectVO {
    private Date fechaInicio;
    private Date fechaFin;
}

DTO

public class ProjectDTO {
   private String fechaInicio;
   private String fechaFin;
}

以及以下转换器将字符串转换为日期:

Converter<String, Date> dateConverter = new Converter<String, Date>()
    {
        public Date convert(MappingContext<String, Date> context)
        {
            Date date;

            try {
                date = new SimpleDateFormat("dd/MM/yyyy").parse(context.getSource());
            } catch (ParseException e) {
                throw new DateFormatException();
            }

            return date;
        }
    };

modelMapper.addConverter(dateConverter);

如果我使用modelmapper将单个String转换为日期,则它将与该转换器完美配合。

但是现在我需要将我的ProjectDTO对象转换为一个ProjectVO对象,并且我收到一条错误消息,说它无法将字符串转换为日期。我怀疑这是因为Date在Project对象内部。我对吗?我该怎么解决?

谢谢。

1 个答案:

答案 0 :(得分:1)

好的,它就像一个超级按钮一样工作,如果我使用它,它会自动检测到它:

modelMapper.createTypeMap(String.class, Date.class);

,然后添加我创建的自定义转换器:)