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
数组中指定。
我正在创建构成我的数据库架构的实体。
我有实体 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
数组中指定。