@Transactional
 @Override
 public ResponseDTO createResponse(ResponseDTO response) {
   JpaResponse jpaResponse = surveyMapper.toJpaResponse(response);
   jpaSurveyDao.createResponse(jpaResponse);
   return surveyMapper.toResponse(jpaResponse);
 }
  @Transactional
  @Override
  public ResponseDTO updateResponse(ResponseDTO response) {
    JpaResponse existingResponse = jpaSurveyDao.getResponse(response.getId());
    if (existingResponse == null) {
      log.warn("Cannot update response - does not exist", response.toString());
      return null;
    }

    JpaResponse jpaResponse = surveyMapper.toJpaResponse(response);
    log.debug("existing response: " + existingResponse.toString());
    log.debug("source DTO response: " + response.toString());
    log.debug("mapped response: " + jpaResponse.toString());
    jpaResponse = jpaSurveyDao.updateResponse(jpaResponse);
    log.debug("updated response: " + jpaResponse.toString());
    return surveyMapper.toResponse(jpaResponse);
  }