
예시를 보며 이해하기로 한다.
@Transactional
public Member joinMember(MemberRequestDTO.JoinDto request) {
// DTO -> Member 객체 생성
Member newMember = MemberConverter.toMember(request);
List<FoodCategory> foodCategoryList = request.getPreferCategory().stream()
.map(category -> {
return foodCategoryRepository.findById(category).orElseThrow(() -> new FoodCategoryHandler(ErrorStatus.FOOD_CATEGORY_NOT_FOUND));
}).collect(Collectors.toList());
List<MemberPrefer> memberPreferList = MemberPreferConverter.toMemberPreferList(foodCategoryList);
memberPreferList.forEach(memberPrefer -> {memberPrefer.setMember(newMember);});
return memberRepository.save(newMember);
}
List<FoodCategory> foodCategoryList = request.getPreferCategory().stream()
.map(category -> {
return foodCategoryRepository.findById(category).orElseThrow(() -> new FoodCategoryHandler(ErrorStatus.FOOD_CATEGORY_NOT_FOUND));
}).collect(Collectors.toList());
List<MemberPrefer> memberPreferList = MemberPreferConverter.toMemberPreferList(foodCategoryList);
public class MemberPreferConverter {
public static List<MemberPrefer> toMemberPreferList(List<FoodCategory> foodCategoryList){
return foodCategoryList.stream()
.map(foodCategory ->
MemberPrefer.builder()
.foodCategory(foodCategory)
.build()
).collect(Collectors.toList());
}
}
memberPreferList.forEach(memberPrefer -> {memberPrefer.setMember(newMember);});
출처 : UMC 5기 워크북