작성
·
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);
}