错误:未找到“”的存储库,看起来此实体未在当前的“默认”连接中注册?

5lhxktic  于 2022-10-03  发布在  其他
关注(0)|答案(3)|浏览(135)

其主要思想是使用Typeorm连接3个表。它们中的两个在开始时工作正常:

module.exports = {
"type": "mssql",
"host": "xxx",
"port": 1433,
"username": "xxx",
"password": "xxx",
"database": "xxx",
"entities": [
    "build/models/**/*.js"
]}

问题是,当我尝试连接第三个表时,它会将其他表用作“ManyToOne”。然后我得到了这个错误:

UnhandledPromiseRejectionWarning:错误:找不到结果#res_ControllerId的实体元数据。检查您是否指定了正确的实体对象,以及它是否已在连接选项中连接。

我解决了这个问题,将“__dirname”添加到实体中。

module.exports = {
"type": "mssql",
"host": "xxx",
"port": 1433,
"username": "xxx",
"password": "xxx",
"database": "xxx",
"entities": [
  __dirname + "build/models/**/*.js"  <------ Here
]
}

然后,错误更改为:

找不到“Tabla1”的存储库。看起来此实体未在当前的“默认”连接中注册?

找不到“Tabla2”的存储库。看起来此实体未在当前的“默认”连接中注册?

我在这里很糟糕,我不知道如何继续我的计划,如果你需要其他东西,没有问题。先谢谢你。

bzzcjhmw

bzzcjhmw1#

尝试将__dirname + "build/models/**/*.js"更改为"build/models/**/*{.js,.ts}"

jm2pwxwz

jm2pwxwz2#

确保使用@Entity()注解实体类

示例

@Entity() <-- IMPORTANT
export class Tax {
  @PrimaryGeneratedColumn()
  taxId: number;

  @Column({ type: 'varchar', length: 48 })
  name: string;

  @Column({ type: 'varchar', length: 128 })
  description: string;

  @Column({ type: 'smallint' })
  rate: string;
}
jm2pwxwz

jm2pwxwz3#

可能实体文件的命名不正确,使其无法找到实体文件。正确的实体文件名为xxx.entity.ts。当我将其命名为xxx.ts时,TypeScrip不会报告错误,但Nestjs会报告它。

相关问题