typeorm - 错误:添加多对多关系后未找到对象元数据
问题描述
我需要为多对多关系添加其他属性,我自己创建了一个新实体,如文档中所示。
它是用户实体。
import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm';
import { ShareTask } from './../../share-taks/entity/share-taks.entity';
@Entity('users')
export class User {
@PrimaryGeneratedColumn()
public id: number;
@Column({ type: 'varchar', nullable: false })
public email: string;
@Column({ type: 'varchar', nullable: false })
public password: string;
@OneToMany(() => ShareTask, (shareTask: ShareTask) => shareTask.user)
public shareTask: ShareTask[];
}
它是任务实体。
import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm';
import { ShareTaks } from './../../share-taks/entity/share-taks.entity';
@Entity('tasks')
export class Taks {
@PrimaryGeneratedColumn()
public id: number;
@Column({ type: 'varchar', nullable: false, length: 50 })
public title: string;
@OneToMany(() => ShareTaks, (shareTaks: ShareTaks) => shareTaks.taks)
public shareTaks: ShareTaks[];
}
它是 ormconfig.json。
{
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "root",
"password": "7047",
"database": "db",
"entities": ["dist/**/*.entity{.ts,.js}"],
"synchronize": true
}
它是 ShareTaks 实体。
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm';
import { User } from './../../users/entity/user.entity';
import { Taks } from './../../taks/entity/taks.entity';
@Entity('shareTasks')
export class shareTask {
@PrimaryGeneratedColumn()
public id: number;
@Column({ type: 'integer', nullable: false })
public taskId: number;
@Column({ type: 'integer', nullable: false })
public userId: number;
@ManyToOne(() => (task: Task) => task.shareTask, { cascade: ['insert', 'update', 'remove'] })
public task: Task;
@ManyToOne(() => (user: User) => user.shareTask, { cascade: ['insert', 'update', 'remove'] })
public user: User;
}
在我建立多对多关系之前,一切都很顺利。当我添加多对多关系时,出现错误。
错误:未找到 ShareTask#task 的实体元数据。检查您是否指定了正确的实体对象,以及它是否在连接选项中连接。
由于我得到一个错误,我无法理解。
我找到了一些问题的答案,但它们没有帮助我。
解决方案
该错误很可能是由您在 ormconfig 文件中的实体中提供的路径引起的。尝试将其更改为当前目录的相对路径,例如
"entities": [__dirname + "/../**/*.entity{.ts,.js}"]
推荐阅读
- symfony - 如何修复 Symfony 4 中已弃用的用户?
- angular - Angular 7升级“在'@angular/cdk/stepper'中找不到导出'STEPPER_GLOBAL_OPTIONS'
- r - 在 R Shiny 中绘图后如何保留曲线?
- javascript - 页面环境阻塞了 angularjs bootstrap
- python - 在 python bokeh 中获取 web 浏览器的全尺寸
- python - 使用 sklearn TSNE 映射测试数据
- node.js - 在电子应用程序中以 root 身份运行节点命令
- maven - Sonatype nexus 发布快照,但无法下载
- .htaccess - .htaccess 将内容重写到子文件夹
- php - 致命错误:构造函数 Autoload::autoload() 在第 3 行的 C:\xampp\htdocs\project\autoload.php 中不能是静态的