MapStruct: в параметрах источника нет свойства с именем «updatedDate». Вы имели в виду «пустой»? - PullRequest
1 голос
/ 31 января 2020

Я получаю исключение Mapstruct, где поля уже присутствуют в источнике и цели:

@Mapper
public interface DccsMapper {
    DccsMapper MAPPER = Mappers.getMapper( DccsMapper.class );

    @Mappings({
        @Mapping(source = "updatedDate", target = "updatedDate", dateFormat = "yyyy-MM-dd'T'HH:mm:ss"),
    })
    List<DataCenterCluster> entityListToDaoList(List<Dccs> source);
}

Источник:

public class Dccs {
    @SerializedName("UpdatedDate")
    @Expose
    private String updatedDate;

Пункт назначения:

public class DataCenterCluster {

    @Column(name = "UPDATEDDATE")
    private Date updatedDate;

Исключение :

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project Snow: Compilation failure
[ERROR] /C:......../DMapper.java:[18,17] No property named "updatedDate" exists in source parameter(s). Did you mean "empty"?

Пом также есть:

<properties>
    <org.mapstruct.version>1.3.1.Final</org.mapstruct.version>
    <m2e.apt.activation>jdt_apt</m2e.apt.activation>
</properties>
 .
 .
 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${org.mapstruct.version}</version>
                        </path>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>1.18.10</version>
                        </path>   
                    </annotationProcessorPaths>
                </configuration>
            </plugin>

1 Ответ

1 голос
/ 31 января 2020

О человек ... Я застрял в течение последнего часа, и в тот момент, когда я отправил вопрос, ответ пришёл мне в голову.

Нам нужно добавить следующее в случае отображения на основе списка:

List<DataCenterCluster> entityListToDaoList(List<Dccs> source);

@Mappings({
        @Mapping(source = "updatedDate", target = "updatedDate", dateFormat = "yyyy-MM-dd'T'HH:mm:ss"),
    })
    DataCenterCluster entityToDao(Dccs source);
...