首页 > 解决方案 > Mapstruct:无法从 java.time.LocalDate 转换为 java.time.OffsetDateTime

问题描述

public class ClassA {
     private OffsetDateTime updateBy;
}

public class ClassB {
     private LocalDate timestamp;
}

public interface ClassABMapper {
     @Mapping(target = "updateBy", source = "classB.timestamp")
     ClassA map(ClassB classB);
}

无法将属性“java.time.LocalDate timestamp”映射到“java.time.OffsetDateTime updateBy”。考虑声明/实现一个映射方法:“java.time.OffsetDateTime map(java.time.LocalDate value)”。

我尝试在映射器中声明以下方法。

java.time.LocalDate map(java.time.OffsetDateTime value);

我收到错误:

错误:java.time.LocalDate 没有可访问的空构造函数。java.time.LocalDate 映射(java.time.OffsetDateTime 值);

有人可以解释如何执行转换吗?

标签: java-timemapstruct

解决方案


我创建了自己的自定义映射器,如文档第 5.4 节中所述。调用其他映射器。这为我解决了这个问题。


推荐阅读