Prev Next

Java / MapStruct Java Interview questions part 2

What happens when MapStruct can't find a matching source property?

If a target property has no corresponding source property (by name, by @Mapping, or via a usable conversion method), MapStruct does not fail silently. By default it emits an "Unmapped target property" compiler warning, naming the property and the method involved, and simply leaves that property unset in the generated code (default value, usually null or zero).

This behavior is configurable through unmappedTargetPolicy on @Mapper: WARN (default), ERROR to fail the build instead, or IGNORE to suppress the message entirely. Teams that want strict mapping coverage often set the policy to ERROR so incomplete mappings can't slip past code review.

By default, an unmapped target property produces:
Setting unmappedTargetPolicy = ERROR will:

More Related questions...

What is MapStruct? What are the main features of MapStruct? What is the purpose of the @Mapper annotation? What are the types of mapping methods MapStruct can generate? How do you add MapStruct to a Maven project? How do you add MapStruct to a Gradle project? Define a MapStruct mapper interface? Describe how MapStruct generates the mapper implementation class? List the annotations commonly used with MapStruct? What is the purpose of the @Mapping annotation? How do you map fields with different names using MapStruct? How do you ignore a target field during mapping? What is the componentModel attribute in @Mapper? How do you use MapStruct with Spring Boot? What are default methods in a MapStruct mapper used for? How do you map a List of objects with MapStruct? What is the purpose of the uses attribute in @Mapper? How do you retrieve a mapper instance without Spring? What is the difference between MapStruct and ModelMapper? What is the difference between MapStruct and Dozer? Why is MapStruct faster than reflection-based mapping libraries? How does MapStruct handle nested object mapping? How does MapStruct map a Map to another Map type? How do you perform custom type conversion in MapStruct? Explain the internal working of MapStruct's annotation processing? Explain the execution flow of a generated MapStruct mapper method? How do you use @BeforeMapping and @AfterMapping? When should you use an expression inside @Mapping? How does MapStruct handle null values during mapping? What is the difference between NullValueMappingStrategy options? How do you inject dependencies into a MapStruct mapper? When would you choose an abstract class over an interface for a mapper? What happens when MapStruct can't find a matching source property? How do you use @InheritInverseConfiguration for bidirectional mapping? How do you use @InheritConfiguration to reuse mapping rules? Why doesn't MapStruct use reflection at runtime? How do you troubleshoot an "Unmapped target property" warning? What is the difference between @Mapper(uses =...) and a default method? How can you optimize MapStruct-generated mapping performance? Explain the lifecycle of a MapStruct mapper from source code to runtime call? How does MapStruct integrate with Lombok, and what issues can occur? What is the difference between returning a new object and using @MappingTarget? When should you use the @MappingTarget parameter? How do you map an enum to a different enum with mismatched constants? What is the difference between qualifiedByName and qualifiedBy? How does MapStruct handle circular references between objects? Why should you use MapStruct instead of hand-written DTO mapping code? How do you unit test a MapStruct-generated mapper? What is the difference between MapStruct's compile-time approach and CGLIB proxy-based mapping? How do you handle multiple mapping methods for the same source and target types?
Show more question and Answers...


Comments & Discussions