我正在创建构成我的数据库架构的实体。 我有一个实体Photo
绑定到实体Hashtag
多对一关系(每张照片都有一个主题标签,每个主题标签可以属于许多照片(。
为了做到这一点,根据TypeOrm文档,我必须执行以下操作。 在照片实体中:
@ManyToOne(type => HashtagEntity, hashtag => hashtag.Photos)
@JoinColumn({ name: 'HashtagId' })
Hashtag: HashtagEntity;
在主题标签实体中:
@OneToMany(type => PhotoEntity, photo => photo.Hashtag)
Photos: PhotoEntity[];
我已经读到所有实体都急切地加载在TypeOrm中。这是否意味着每次查询主题标签时,我都会具体化与之关联的所有照片? 如果是这种情况,那就太糟糕了,因为我只需要从照片中引用主题标签,而不是相反。
我该如何解决这个问题?我应该在Photo
实体上使用OneToOne
关系还是有办法进行单向ManyToOne
?
TypeORM 关系不会自动eager
ly 加载,除非您在实体定义中另行指定。 为了具体化关系,必须在查询的relations
数组中指定外键属性的名称。