인프런 커뮤니티 질문&답변

모코코님의 프로필 이미지
모코코

작성한 질문수

실전! Querydsl

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

작성

·

240

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입니다.

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

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

감사합니다.

모코코님의 프로필 이미지
모코코

작성한 질문수

질문하기