首页 > 解决方案 > TypeORM 实体与自身的关系

问题描述

我有一个名为“评论”的实体,这个想法是对这些评论进行回复。我也可以回复回复。示例如下:

-Comment1
---Reply 1 Of Comment 1
-----Reply Of Reply 1
---Reply 2 Of Comment 1
-----Reply1 Of Reply 2
-------Reply1 Of Reply 1 of Reply 2
-Comment2

实体是这个:

@Entity('comments') {
    @PrimaryGenerated()
    id: string;

    @Column()
    message: string;

    @Column()
    date: Date;
}

我正在考虑的方法是建立一个“自我关系”,我可以在其中创建另一个可能称为“parent_id”的字段,并且在我填写此字段的地方,我认为这是一个答复。关于如何实现这种“自我关系”的任何想法或另一种方法的想法?

标签: javascripttypescriptentityrelationshiptypeorm

解决方案


这是自引用关系的示例:

@Entity('comments')
export class Comment {
    @PrimaryGenerated()
    id: string;

    @Column()
    message: string;

    @Column()
    date: Date;

    @Column()
    parentId: number;

    @ManyToOne(type => Comment, comment => comment.children)
    @JoinColumn({ name: "parentId" })
    parent: Comment;

    @OneToMany(type => Category, comment => comment.parent)
    children: Comment[];
}

您也可以将树实体视为另一种方法。


推荐阅读