我正在创建构成数据库模式的实体。
我有一个实体<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
?
答案 0 :(得分:0)
eager
加载 TypeORM关系。
为了实现关系,必须在查询的relations
数组中指定外键属性的名称。