Код: Выделить всё
@Mapper(componentModel = MappingConstants.ComponentModel.SPRING)
public abstract class WishListMapper {
@Mappings ({
@Mapping(source = "productCountDtos", target = "productCounts", qualifiedByName = "productCountDtosToProductCounts"),
@Mapping(target = "account", ignore = true),
@Mapping(target = "id", ignore = true)
})
public abstract WishList mapToWishList(WishListDto wishListDto);
@Named("productCountDtosToProductCounts")
Set
productCountDtosToProductCounts(List productCountDtos) {
return productCountDtos.stream().map(productCountDto -> Mappers.getMapper(ProductCountMapper.class).mapToProductCount(productCountDto)).collect(Collectors.toSet());
}
}
Код: Выделить всё
@Mapper(componentModel = MappingConstants.ComponentModel.SPRING)
public abstract class ProductCountMapper {
@Autowired
protected ProductService productService;
@Mappings({
@Mapping(source = "productId", target = "product", qualifiedByName = "productIdToProduct"),
@Mapping(target = "wishList", ignore = true),
@Mapping(target = "id", ignore = true)
})
public abstract ProductCount mapToProductCount(ProductCountDto ProductCountDto);
@Named("productIdToProduct")
Product productIdToProduct(Long productId) {
return productService.get(productId);
}
}
PS: если ProductCountMapper используется напрямую (без вызова WishListMapper) работает нормально.
Какое решение?
Подробнее здесь: https://stackoverflow.com/questions/793 ... nitialized