TypeORM 单向多对一关系

TypeORM Unidirectional Many To One relation

我正在创建构成我的数据库架构的实体。 我有实体 Photo 以多对一关系绑定到实体 Hashtag(每张照片都有一个主题标签,每个主题标签可以属于多张照片)。

为了做到这一点,根据 TypeOrm 文档,我必须执行以下操作。 在 Photo 实体中:

@ManyToOne(type => HashtagEntity, hashtag => hashtag.Photos)
@JoinColumn({ name: 'HashtagId' })
Hashtag: HashtagEntity;

并且在 Hashtag 实体中:

@OneToMany(type => PhotoEntity, photo => photo.Hashtag)
Photos: PhotoEntity[];

我读到所有实体都急切地加载到 TypeOrm 中。这是否意味着每次我查询一个主题标签时,我都会具体化与其关联的所有照片? 如果是这种情况,那就太糟糕了,因为我只需要从照片中引用标签,而不是相反。

我该如何解决这个问题?我应该在 Photo 实体上使用 OneToOne 关系还是有办法制作单向 ManyToOne?

TypeORM 关系不会自动 eager 加载,除非您在实体定义中另有指定。 为了具体化关系,外键的名称 属性 必须在查询的 relations 数组中指定。