TypeORM单向多对一关系

时间:2018-06-24 17:13:18

标签: typeorm

我正在创建构成数据库模式的实体。 我有一个实体<li class="nav-item dropdown" *ngFor="let theme of themes"> <a class="nav-link dropdown-toggle" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span [innerHTML]="theme.iconCode"></span> {{theme.name}} </a> <ul class="dropdown-menu" aria-labelledby="navbarDropdown"> <li *ngFor="let category of theme.categories"> <a class="dropdown-item" [routerLink]="['/threads']" [queryParams]="{ category: category._id }"> {{category.name}} </a> </li> </ul> </li> ,它以多对一关系绑定到实体export class TopbarComponent { @Input() themes: Theme[]; } (每张照片都有一个标签,并且每个标签可以属于许多照片)。

为此,根据TypeOrm文档,我必须执行以下操作。 在照片实体中:

Photo

并在标签实体中:

Hashtag

我读到所有实体都急切地加载到TypeOrm中。这是否意味着每次查询主题标签时,我都会实现与之相关的所有照片? 如果是这种情况,那非常糟糕,因为我只需要从照片中引用Hashtag,而无需其他方式。

我该如何解决?我应该在@ManyToOne(type => HashtagEntity, hashtag => hashtag.Photos) @JoinColumn({ name: 'HashtagId' }) Hashtag: HashtagEntity; 实体上使用@OneToMany(type => PhotoEntity, photo => photo.Hashtag) Photos: PhotoEntity[]; 关系还是有办法制作单向OneToOne

1 个答案:

答案 0 :(得分:0)

除非您在Entity定义中另外指定,否则不会自动eager加载

TypeORM关系。 为了实现关系,必须在查询的relations数组中指定外键属性的名称。