작성
·
58
0
postman으로 음식 상세 조회를 할 때 반환값 store : null 로 나오는데
store의 name 가져오는 방법이 있을까요?<FoodService>
음식 상세조회 하는 코드 구조는 위와 같습니다
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
이혜지님, 문의하신 내용에 대해 답변 드립니다.
음식 상세 조회 시, store
값이 null
로 반환되는 문제를 해결하기 위해 store
의 이름을 가져오는 방법에 대해 질문하셨습니다. 제공된 이미지와 설명을 바탕으로, Food
엔티티 클래스에 @ManyToOne
관계와 @JoinColumn(name="store_id")
를 사용하여 Store
엔티티와 연관 관계를 맺고 있는 것으로 보입니다. 이 부분이 올바르게 구성되어 있음에도 불구하고 store
정보가 null
로 반환된다면, FoodDto
의 변환 과정에서 store
정보를 포함시키지 않기 때문일 수 있습니다.
FoodService
클래스의 findById
메소드에서 Food
객체를 FoodDto
객체로 변환할 때, store
정보를 포함시키도록 createFromEntity
메소드를 수정하거나 새로운 메소드를 추가해야 합니다. 아래는 storeName
을 FoodDto
로 전달하기 위해 수정할 수 있는 방법의 예시입니다.
createFromEntity
메소드나 해당 메소드의 로직에서 storeName
을 설정해 주는 부분을 찾아 수정합니다. 예를 들어, Food
엔티티의 store
필드가 null
이 아니라면 해당 store
의 name
을 FoodDto
의 storeName
에 설정하도록 합니다.
public static FoodDto createFromEntity(Food food) {
if (food.getStore() != null) {
return new FoodDto(
food.getFoodId(),
food.getName(),
food.getPrice(),
food.getStore(),
food.getStore().getName() // store의 이름을 설정
);
} else {
// store 정보가 없을 경우의 처리
return new FoodDto(
food.getFoodId(),
food.getName(),
food.getPrice(),
null,
null // storeName을 null로 설정하거나 다른 로직 적용
);
}
}
위의 예시 코드는 FoodDto
객체를 생성할 때 store
필드가 null
이 아니면 해당 store
의 이름을 storeName
에 설정하는 방법을 보여줍니다. 실제 구현 시 FoodDto
클래스의 생성자 파라미터나 빌더 패턴에 맞게 코드를 조정해야 할 수 있습니다.
이 방식을 적용하면 API 응답에서 storeName
에 해당 스토어의 이름을 제대로 받을 수 있을 것입니다.