Java 21 - MapStruct 生成的类为空

问题描述 投票:0回答:1

我想在我的项目中使用MapStruct,但生成的类是空的。 我就是这样做的:

国家.java

import java.io.Serializable;

import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

@EqualsAndHashCode()
@Getter
@Setter
@Entity
@Table(name="country")
public class Country implements Serializable {

    @Id
    private Integer id;

    private String frenchName;
    private String englishName;
    private String shortName;
    private String logo; // just store the logo name like France.jpeg. And we will put the folder path in application.properties
    
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "continent_id", referencedColumnName = "id")
    private Continent continent;
    
}

CountryDto.java

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CountryDto {
    private Integer id;
    private String frenchName;
    private String englishName;
    private String shortName;
    private String logo;
}

CountryMapper.java

import org.mapstruct.Mapper;

import com.simubasket.jeu.dto.CountryDto;
import com.simubasket.jeu.model.Country;

@Mapper(componentModel = "spring")
public interface CountryMapper {
    CountryDto mapToCountryDto(Country country);
    Country mapToCountry(CountryDto countryDto);
}

这是构建过程中生成的CountryMapperImpl.java。 我不知道为什么这两个方法都是空的? 我可能在某个地方错过了一些东西,但我不知道是什么。我已经在其他项目中以相同的条件使用了 MapStruct,但一切正常。

提前谢谢您

CountryMapperImpl.java

import com.simubasket.jeu.dto.CountryDto;
import com.simubasket.jeu.model.Country;
import javax.annotation.processing.Generated;
import org.springframework.stereotype.Component;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    date = "2024-01-06T22:50:31+0100",
    comments = "version: 1.5.5.Final, compiler: javac, environment: Java 21.0.1 (Oracle Corporation)"
)
@Component
public class CountryMapperImpl implements CountryMapper {

    @Override
    public CountryDto mapToCountryDto(Country country) {
        if ( country == null ) {
            return null;
        }

        CountryDto countryDto = new CountryDto();

        return countryDto;
    }

    @Override
    public Country mapToCountry(CountryDto countryDto) {
        if ( countryDto == null ) {
            return null;
        }

        Country country = new Country();

        return country;
    }
}
java spring-boot mapstruct
1个回答
0
投票

似乎是lombok问题。尝试在 IDE 中启用注释处理器,然后再次尝试重建项目。

© www.soinside.com 2019 - 2024. All rights reserved.