如果我是Andrés的用户,并且我想与我的同事José,Maria和Martin创建一个新项目。所以,我有这个逻辑:
一个项目有很多用户,例如:
用户有很多项目,例如:
//此文件将表示“新项目”,在这种情况下,它需要标题,名称,主体,并且与实体用户之间存在许多关系。
import {
Entity,
BaseEntity,
PrimaryGeneratedColumn,
Column,
ManyToMany,
JoinTable
} from "typeorm";
import { User } from "./User";
@Entity()
export class Matrix extends BaseEntity {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column("varchar", { length: 100 })
title: string;
@Column("varchar", { length: 255 })
name: string;
@Column("json", { nullable: true })
body: object;
@ManyToMany(() => User)
@JoinTable({ name: "coworkers" })
coworkers: User[];
}
//该用户实体仅具有每个普通用户的基本信息...
import * as bcrypt from "bcryptjs";
import {
Entity,
BaseEntity,
PrimaryGeneratedColumn,
Column,
BeforeInsert
} from "typeorm";
@Entity()
export class User extends BaseEntity {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column("varchar", { length: 255 })
name: string;
@Column("varchar", { length: 255 })
lastname: string;
@Column("varchar", { length: 255, unique: true })
email: string;
@Column("text")
password: string;
@Column({ default: false })
confirmed: boolean;
@BeforeInsert()
async hashPassword() {
this.password = await bcrypt.hash(this.password, 10);
}
}
因此,如果要创建一个名为“Análisisempresas x”的新项目,请使用以下查询:
const matrix = new Matrix();
matrix.coworkers = ["1", "2", "3"]; // Array of coworkers ids
matrix.title = "Análisis empresas x"; // What name has the matrix.
matrix.name = "Matrix d.o.f.a"; // What type of matrix is.
await matrix.save();
该代码完美地创建了矩阵,但是与“同事”表上的用户的关系是“很多对很多” ...
这是我正在使用的完整代码(code)
这是实体用户(code)
这是实体矩阵(code)
请帮助:)