// createSentenceDto= {sentence, translation, translator, userSeq}
// userSeq: FK 컬럼명
const response = await this.sentenceRepository.save(createSentenceDto); // Error
해결
const user = await this.usersService.findOne(createSentenceDto.userSeq);
if (!user) {
throw new Error('user not found');
}
const sentence = new Sentence();
sentence.col1 = value1;
sentence.user = user;
const response = await this.sentenceRepository.save(sentence);
참고
ManyToOne으로 설정한 필드 값 넣기
// 엔티티 객체정보
export class Photo {
@ManyToOne(() => User, (user) => user.photos)
user: User
}
export class User {
@OneToMany(() => Photo, (photo) => photo.user)
photos: Photo[]
}
// 1. 첫번째 방법: 참조하는 테이블(photo)의 데이터부터 저장한 후 참조대상테이블(user) 저장
const photo1 = new Photo()
photo1.url = "me.jpg"
await dataSource.manager.save(photo1)
const photo2 = new Photo()
photo2.url = "me-and-bears.jpg"
await dataSource.manager.save(photo2)
const user = new User()
user.name = "John"
user.photos = [photo1, photo2]
await dataSource.manager.save(user)
// 2. 두번째 방법: 참조 대상(user) 테이블부터 저장한 후 참조하는 테이블(photo) 저장
const user = new User()
user.name = "Leo"
await dataSource.manager.save(user)
const photo1 = new Photo()
photo1.url = "me.jpg"
photo1.user = user
await dataSource.manager.save(photo1)
const photo2 = new Photo()
photo2.url = "me-and-bears.jpg"
photo2.user = user
await dataSource.manager.save(photo2)
간단한 에러지만 원인을 찾는데 은근히 시간이 걸렸습니다.
부디 저와 같은 일을 겪지 않으셨으면 합니다.
잘보고 갑니당~