На самом деле я использую MapperDecorator в качестве обходного пути. Пример:
Картограф
Код: Выделить всё
@Mapper
@DecoratedWith(UserAccountDecorator.class)
public interface UserAccountMapper {
UserAccountDto map(User user);
User map(UserAccountDto dto);
User map(UserAccountDto dto, @MappingTarget User user);
}
Код: Выделить всё
public abstract class UserAccountDecorator implements UserAccountMapper {
@Autowired
@Qualifier("delegate")
private UserAccountMapper delegate;
@Autowired
private UserRepository userRepository;
@Override
public User map(UserAccountDto dto) {
if (dto == null) {
return null;
}
User user = new User();
if (dto.getId() != null) {
user = userRepository.findOne(dto.getId());
}
return delegate.map(dto, user);
}
}
Есть ли хорошее решение для этого?
Я использую:
- MapStruct: 1.1.0
Подробнее здесь: https://stackoverflow.com/questions/423 ... -mapstruct