Issue
This Content is from Stack Overflow. Question asked by mster3313
I am getting this strange error (Using IntelliJ IDEA 2022.2.2 Ultimate):
Ambiguous mapping methods found for mapping property "java.lang.Short TypeA" to TypeB: TypeB TypeBRepo.getOne(java.lang.Short id), TypeB TypeBRepo.getById(java.lang.Short id), TypeB TypeBRepogetReferenceById(java.lang.Short id)
This happened after I upgraded the spring boot version from 2.1.0.RELEASE
to 2.7.2
and maven version from 3.0.0
to 3.8.6
.
TypeB Repository extends JPARepository
@Repository
public interface TypeBRepo extends JpaRepository<TypeB, Short> {
}
Mapping is done using mapstruct version 1.3.1.Final
(Tried with latest mapstruct version also no change)
Following is the mapping
@Mappings({
@Mapping(target = "TypeB", source = "request.TypeA"),
@Mapping(target = "securityValue", source = "request.currentPrice"),
@Mapping(target = "user", source = "user"),
@Mapping(target = "id", ignore = true),
@Mapping(target = "documents", ignore = true),
})
public abstract void sourceToDestination(final "Type" request,
final "Type" user,
final @MappingTarget TargetA input);
And the TargetA class is as follows.
@Entity
@Getter
@Setter
@DiscriminatorValue("6")
@FieldDefaults(level = AccessLevel.PRIVATE)
public class TargetA extends BlaBla {
@NotNull
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "investment_loan_type_id")
TypeB type_b_value;
}
Solution
Please check if in your Controller layer you have multiple methods mapped to the same endpoint (@Path).
This Question was asked in StackOverflow by mster3313 and Answered by Windir It is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.