Как вытащить результат сопоставления маппера в слоях?

Есть сущности Answer и Result, связанные с другой сущностью Question как многие к одному. В questions необходимо передать не id этих зависимостей, а поля, поэтому QuestionDTO получает 2 дополнительных поля List <AnswerRequestDto> answers и List<ResultRequestDto> results.После их сопоставления в маппере, как это сопоставление применить в Repository, Service, Controller чтобы добавить question?

@Entity
@Table(name = "questions")
@Getter
@Setter
public class Question {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Long id;

    private String question;

    @Column(name = "position")
    private Integer position;
}
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class QuestionRequestDto {
    private Integer position;
    private String question;
    private List<AnswerRequestDto> answers;
    private List<ResultRequestDto> results;
}
    @Mapper(config = ConfigMapper.class)
    public interface AnswerMapper extends DtoMapper<AnswerRequestDto, Answer>{
        default List<AnswerRequestDto> toDto(Set<Answer> answers) {
            return toDto(new ArrayList<>(answers));
        }
    
        default Set<Answer> map(List<Long> answersIds) {
            return answersIds.stream()
                    .map(id -> Answer.builder().id(id).build())
                    .collect(Collectors.toSet());
        }
    }
@Builder
@Entity
@Table(name = "answers")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Answer {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Long id;

    private String answer;

    private boolean isRight;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "question_id")
    private Question question;
}

@Builder
@Entity
@Table(name = "results")
@Getter
@Setter
public class Result {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Long id;

    private String result;

    private int countRightAnswer;

    @ManyToOne
    @JoinColumn(name = "question_id")
    private Question question;
}

    @Mapper(config = ConfigMapper.class)
    public interface ResultMapper extends DtoMapper<ResultRequestDto, Result> {
        default List<ResultRequestDto> toDto(Set<Result> results) {
            return toDto(new ArrayList<>(results));
        }
    
        default Set<Result> map(List<Long> resultsIds) {
            return resultsIds.stream()
                    .map(id -> Result.builder().id(id).build())
                    .collect(Collectors.toSet());
        }
    }
    @Mapper(config = ConfigMapper.class, uses = {AnswerMapper.class, ResultMapper.class})
    public interface QuestionMapper extends DtoMapper<QuestionRequestDto, Question> {
    
        QuestionRequestDto toDto(Question question);
    
        default QuestionRequestDto toDto(Question question,
                                         List<AnswerRequestDto> answers,
                                         List<ResultRequestDto> results) {
            QuestionRequestDto questionRequestDto = toDto(question);
            questionRequestDto.setAnswers(answers);
            questionRequestDto.setResults(results);
            return questionRequestDto;
        }
    }

Ответы (0 шт):