Я использую Java 8, Spring Boot 2.3.4. РЕЛИЗА ВЕРСИЯ, MAVEN в качестве инструмента сборки и IntelliJ в качестве моего IDE. Class = "Lang-Java PrettyPrint-Override">@Mapper(componentModel = "spring", nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
public interface MapStructVehicleMapper {
Vehicle toVehicle(VehicleMasterDto dto);
void updateVehicleFromDto(@MappingTarget Vehicle vehicle, VehicleDetailDto vehicleDetailDto);
}
< /code>
Приведено ниже зависимости, которые я использовал.
org.mapstruct
mapstruct
1.5.5.Final
org.mapstruct
mapstruct-processor
1.5.5.Final
provided
org.apache.maven.plugins
maven-compiler-plugin
3.11.0
${java.version}
${java.version}
org.mapstruct
mapstruct-processor
1.5.5.Final
org.projectlombok
lombok
1.18.30
< /code>
Проблема, с которой я сталкиваюсь, заключается в том, что когда IMP Mapstruct генерирует во время компиляции, иногда она генерирует правильную реализацию, но иногда это не так.@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2025-08-25T19:01:41+0530",
comments =
"version: 1.5.5.Final, compiler: javac, environment: Java 1.8.0_462 "
"(Private Build)"
)
@Component
public class MapStructVehicleMapperImpl implements MapStructVehicleMapper {
@Override
public Vehicle toVehicle(VehicleMasterDto dto) {
if (dto == null) {
return null;
}
Vehicle vehicle = new Vehicle();
vehicle.setVehicleNo(dto.getVehicleNo());
vehicle.setDriverMobileNo(dto.getDriverMobileNo());
vehicle.setDriverEmail(dto.getDriverEmail());
vehicle.setMaxWeight(dto.getMaxWeight());
vehicle.setMaxCapacity(dto.getMaxCapacity());
return vehicle;
}
@Override
public void updateVehicleFromDto(Vehicle vehicle, VehicleDetailDto vehicleDetailDto) {
if (vehicleDetailDto == null) {
return;
}
if (vehicleDetailDto.getDriverMobileNo() != null) {
vehicle.setDriverMobileNo(vehicleDetailDto.getDriverMobileNo());
}
if (vehicleDetailDto.getDriverEmail() != null) {
vehicle.setDriverEmail(vehicleDetailDto.getDriverEmail());
}
if (vehicleDetailDto.getMaxWeight() != null) {
vehicle.setMaxWeight(vehicleDetailDto.getMaxWeight());
}
vehicle.setMaxCapacity(vehicleDetailDto.getMaxCapacity());
}
}
< /code>
Иногда он генерирует следующий карт, который неверный: < /p>
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2025-08-26T09:43:06+0530",
comments =
"version: 1.5.5.Final, compiler: javac, environment: Java 1.8.0_462 "
"(Private Build)"
)
@Component
public class VehicleMapperMapStructImpl implements VehicleMapperMapStruct {
@Override
public Vehicle toVehicle(VehicleMasterDto dto) {
if (dto == null) {
return null;
}
Vehicle vehicle = new Vehicle();
return vehicle;
}
@Override
public void updateVehicleFromDto(Vehicle vehicle, VehicleDetailDto vehicleDetailDto) {
if (vehicleDetailDto == null) {
return;
}
}
}
< /code>
Из -за этого случайного поведения я не могу доверять структуре карты в нашей производственной среде. Таким образом, мне пришлось создать ручную карту. Может ли кто -нибудь помочь мне понять основную проблему здесь?
Подробнее здесь: https://stackoverflow.com/questions/797 ... n-i-fix-it