【问题标题】:UnhandledPromiseRejectionWarning: Error: Entity metadata for Category#products was not foundUnhandledPromiseRejectionWarning:错误:未找到 Category#products 的实体元数据
【发布时间】:2021-04-17 08:19:45
【问题描述】:

我查看了引发相同错误的其他问题,但没有一个对我有用。我尝试重命名、导入、放入配置文件,我阅读了 typeorm 文档一千遍,但我找不到解决方案。谁能帮帮我?

在 ormconfig.json 上:

  "entities": [
    "./src/models/*.ts"
  ],

类别实体:

  import {
  Column,
  Entity,
  JoinColumn,
  ManyToOne,
  OneToMany,
  PrimaryGeneratedColumn,
} from 'typeorm';
import Product from './Product';
import User from './User';

@Entity('categories')
class Category {
  @PrimaryGeneratedColumn('uuid')
  id: string;
  @Column('varchar')
  name: string;
  @Column('varchar')
  description?: string;

  @ManyToOne(() => User, categories => Category)
  @JoinColumn()
  user: User;

  @OneToMany(() => Product, product => product.category)
  products: Product[];
}
export default Category;

产品实体:

import { PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm';
import Category from './Category';
import Model from './Model';
import Provider from './Provider';
import User from './User';

export enum Genre {
  FEMALE = 'F',
  MALE = 'M',
}

export enum Size {
  PP = 'PP',
  P = 'P',
  M = 'M',
  G = 'G',
  GG = 'GG',
  SIZE_33 = '33',
  SIZE_34 = '34',
  SIZE_35 = '35',
  SIZE_36 = '36',
  SIZE_37 = '37',
  SIZE_38 = '38',
  SIZE_39 = '39',
  SIZE_40 = '40',
  SIZE_41 = '41',
  SIZE_42 = '42',
  SIZE_43 = '43',
  SIZE_44 = '44',
  SIZE_45 = '45',
  SIZE_46 = '46',
  SIZE_47 = '47',
  SIZE_48 = '48',
  SIZE_49 = '49',
  SIZE_50 = '50',
  SIZE_51 = '51',
  SIZE_52 = '52',
}

export enum Status {
  IN_STOCK = 'I',
  OUTPUT = 'O',
}

enum Purchase_type {
  CONSIGNED = 'C',
  OWNER = 'O',
}
class Product {
  @PrimaryGeneratedColumn('uuid')
  id: string;
  @Column('varchar')
  name: string;
  @Column('enum')
  genre: Genre;
  @Column('varchar')
  color: string;
  @Column('enum')
  size: Size;
  @Column('enum')
  status: Status;
  @Column('datetime')
  created_at: Date;
  @Column('varchar')
  id_photo?: string;
  @Column('varchar')
  obs?: string;
  @Column('float')
  sale_value: number;
  @Column('float')
  purchase_value: number;
  @Column('enum')
  purchase_type: Purchase_type;
  @Column('varchar')
  brand: string;

  @ManyToOne(() => User, user => user.products)
  @JoinColumn()
  user: User;

  @ManyToOne(() => Provider, provider => provider.products)
  @JoinColumn()
  provider: Provider;

  @ManyToOne(() => Category, category => category.products)
  category: Category;

  @ManyToOne(() => Model, model => model.products)
  @JoinColumn()
  model: Model;
}
export default Product;

错误:

(节点:10691)UnhandledPromiseRejectionWarning:错误:未找到 Category#products 的实体元数据。检查您是否指定了正确的实体对象,以及它是否在连接选项中连接。 在 /home/guilherme/Documentos/Restore/src/metadata-builder/EntityMetadataBuilder.ts:664:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/guilherme/Documentos/Restore/src/metadata-builder/EntityMetadataBuilder.ts:659:34) 在 /home/guilherme/Documentos/Restore/src/metadata-builder/EntityMetadataBuilder.ts:118:56 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/guilherme/Documentos/Restore/src/metadata-builder/EntityMetadataBuilder.ts:118:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/guilherme/Documentos/Restore/src/connection/ConnectionMetadataBuilder.ts:66:111) 在 Connection.buildMetadatas (/home/guilherme/Documentos/Restore/src/connection/Connection.ts:517:59) 在连接处。 (/home/guilherme/Documentos/Restore/src/connection/Connection.ts:193:18) 在步骤 (/home/guilherme/Documentos/Restore/node_modules/tslib/tslib.js:141:27)

【问题讨论】:

    标签: mysql node.js web typeorm


    【解决方案1】:

    您似乎忘记了产品实体的实体

    import { PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn,  Entity } from 'typeorm';
    import Category from './Category';
    import Model from './Model';
    import Provider from './Provider';
    import User from './User';
    
    @Entity('products') // you forget this 
    class Product {
      @PrimaryGeneratedColumn('uuid')
      id: string;
      @Column('varchar')
      name: string;
      @Column('enum')
      genre: Genre;
      @Column('varchar')
      color: string;
      @Column('enum')
      size: Size;
      @Column('enum')
      status: Status;
      @Column('datetime')
      created_at: Date;
      @Column('varchar')
      id_photo?: string;
      @Column('varchar')
      obs?: string;
      @Column('float')
      sale_value: number;
      @Column('float')
      purchase_value: number;
      @Column('enum')
      purchase_type: Purchase_type;
      @Column('varchar')
      brand: string;
    
      @ManyToOne(() => User, user => user.products)
      @JoinColumn()
      user: User;
    
      @ManyToOne(() => Provider, provider => provider.products)
      @JoinColumn()
      provider: Provider;
    
      @ManyToOne(() => Category, category => category.products)
      category: Category;
    
      @ManyToOne(() => Model, model => model.products)
      @JoinColumn()
      model: Model;
    }
    export default Product;
    

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 2021-08-02
      • 2016-09-13
      • 2020-10-16
      • 2019-06-09
      • 2021-05-18
      • 2022-10-20
      • 2021-02-22
      • 2018-10-22
      相关资源
      最近更新 更多