• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

연관관계 편의 메소드 관련 , select시 return이 2개 나올때 질문

23.08.05 16:42 작성 조회수 187

0

jpa로 토이프로젝트를 하고 있는데 아래와 같이 여정 정보를 저장하는 코드 입니다.

저장할 Journey를 Entity로 변경 후 setTravel로 매핑합니다.

그 후 전체 Travel 데이터를 return하는데 return되는 값에 저장했던 Journey가 2개 들어 있습니다. 왜그런지 이유를 잘 모르겠습니다. ㅠ.ㅠ

 

    @Transactional
    public List<TravelDto.Response> addJourney(Traveler traveler, Long travelId, JourneyDto.Request newJourney) throws IOException {
        Travel travel = travelRepository.findTravelByTravelerIdAndTravelId(traveler.getId(), travelId);

        Journey newJourneyEntity = newJourney.toEntity();
        newJourneyEntity.setTravel(travel);

        return getTravel(traveler);
    }

    public List<TravelDto.Response> getTravel(Traveler traveler) {
        return travelRepository.findByTravelerIdOrderByOrderKeyAsc(traveler.getId())
                .stream()
                .map(TravelDto.Response::new)
                .collect(Collectors.toList());
    }
    public void setTravel(Travel travel) {
        if (this.travel != null) {
            this.travel.getJourneys().remove(this);
        }

        this.travel = travel;
        travel.getJourneys().add(this);
    }

 

답변 1

답변을 작성해보세요.

0

David님의 프로필

David

2023.08.05

안녕하세요. 모코코님, 공식 서포터즈 David입니다.

올려주신 코드만으로는 정확하게 파악하기 어렵네요.

newJourney.toEntity(); 라인에 브레이크 포인트를 걸고 디버깅하시면서 Travel 객체에 포함된 Journey 개수를 파악해 보시겠어요?

감사합니다.