如何在TypeORM中检索关联数据和关系数据



我有这个实体类。这是两张桌子之间的关联。

import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
import { Classroom } from "./Classroom";
import { Teacher } from "./Teacher";
@Index("fk_class_has_teacher_teacher1_idx", ["teacherId"], {})
@Index("fk_class_has_teacher_class1_idx", ["classId"], {})
@Entity("teacherclassroom", { schema: "school" })
export class Teacherclassroom {
@Column("int", { primary: true, name: "class_id" })
classId: number;
@Column("int", { primary: true, name: "teacher_id" })
teacherId: number;
@Column("datetime", {
name: "reg_date",
nullable: true,
default: () => "CURRENT_TIMESTAMP"
})
regDate: Date | null;
@ManyToOne(
() => Classroom,
classroom => classroom.teacherclassrooms,
{ onDelete: "NO ACTION", onUpdate: "NO ACTION" }
)
@JoinColumn([{ name: "class_id", referencedColumnName: "id" }])
class: Classroom;
@ManyToOne(
() => Teacher,
teacher => teacher.teacherclassrooms,
{ onDelete: "NO ACTION", onUpdate: "NO ACTION" }
)
@JoinColumn([{ name: "teacher_id", referencedColumnName: "id" }])
teacher: Teacher;
}

当我从这个关联中检索一行时,我要做的是获取教师和课堂的详细信息。我是这样做的,

import "reflect-metadata";
import { createConnection, getRepository } from "typeorm";
import { Teacherclassroom } from "./entity/Teacherclassroom";
import { Classroom } from "./entity/Classroom";
import { Teacher } from "./entity/Teacher";
createConnection().then(async connection => {
const myRepository = getRepository(Teacherclassroom);
const test = myRepository.find({ relations: ["teacher", "classroom"] });
console.log(test);
}).catch(error => console.log(error));

我收到这个错误,

Relation was not found, please check if it is correct and really exist in your entity.

只需在课堂关系中将class更改为classroom

@ManyToOne(() => Classroom,classroom => classroom.teacherclassrooms,
{ onDelete: "NO ACTION", onUpdate: "NO ACTION" })
@JoinColumn([{ name: "class_id", referencedColumnName: "id" }])
classroom: Classroom;

最新更新