QueryFailedError: Referencing column 'user_id' and referenced column 'id' in foreign key constraint '' are incompatible. _ 최종프로젝트

장영환·2024년 11월 21일

트러블슈팅

목록 보기
9/12

전개

외래키, 기본키 옵션, 속성 오류이다.

상점 엔티티

  @PrimaryGeneratedColumn({ type: 'int', unsigned: true })
  id: number;

  @Column({ type: 'int', unsigned: true })
  user_id: number;
  
  @OneToOne(() => User, (user) => user.store)
  @JoinColumn({ name: 'user_id' })
  user: User;

  @OneToMany(() => Review, (review) => review.store)
  review: Review;

  @OneToMany(() => StoreProduct, (storeProduct) => storeProduct.store)
  storeProduct: StoreProduct;

user 엔티티

export class User {
  @PrimaryGeneratedColumn({ type: 'int', unsigned: true })
  id: number;

  @Column({ type: 'enum', enum: UserRole, default: UserRole.CUSTOMER })
  role: UserRole;

  @OneToOne(() => Store, (store) => store.user)
  store: Store;

  @OneToMany(() => Review, (review) => review.user)
  review: Review[];

  @OneToMany(() => Order, (order) => order.user)
  order: Order[];

  @OneToMany(() => CartItem, (cartItem) => cartItem.user)
  cartItem: CartItem[];
}

결말

서로 관계를 맺은 엔티티의 id 타입이 동일하고 옵션도 같게 설정해야한다.

0개의 댓글