해결된 질문
작성
·
392
0
const savedProductSaleslocation = await this.productSaleslocationRepository.save({
...productSaleslocation,
});
위 코드에서, 아래처럼 코드를 바꿔봤습니다.
const savedProductSaleslocation = await this.productSaleslocationRepository.save(productSaleslocation);
정상 작동했는데 차이가 무엇인가요? 또 권장하는 방식은 무엇인가요?
답변 1
0
안녕하세요 ZZAMBA님!
현재 로직(productSaleslocation)에서는 save
메서드에 하나의 인자만 전달하고 있기 때문에 아래 작성해주신 로직처럼 작성하여도 큰 문제가 없으나, save
메서드에 여러개의 인자가 이용된다면 강의에서 진행하는 방식을 이용하여 작성해 주셔야 합니다.
product를 저장하는 로직과 비교하여 학습해 보시기 바랍니다. 감사합니다 :)
안녕하세요 ZZAMBA님!
save
메서드에서 아래의 경우처럼 하나의 인자를 전달해주는 경우에는 기존의 객체를 넣어주어도 크게 문제가 발생하지 않습니다.
async create({ createProductInput }: { createProductInput: CreateProductInput }) {
const result = await this.productRepository.save(createProductInput);
return result;
}
아래처럼 여러개의 인자를 전달해주는 경우를 위해 스프레드 연산자를 사용하는 것입니다.
const result2 = await this.productRepository.save({
...product,
productSaleslocation: result,
productCategory: { id: productCategoryId },
});
해당 내용은 1 : N 관계 등록 API
수업을 통해 자세하게 학습할 수 있으니 참고해 주시기 바랍니다. 감사합니다!
전 주차(typeorm-crud)에 배웠던 ProductService 내 create 메서드도 아래 코드처럼 객체를 직접 넣어주었고, 실행해본 결과, graphQL playground에서도 성공적으로 실행 되었습니다.
객체를 새로 생성하는 것과 그냥 원래 객체를 넣는 것의 차이만 있는 것인가요?