代码之家  ›  专栏  ›  技术社区  ›  Aaron Ullal

类型单向多对一关系

  •  0
  • Aaron Ullal  · 技术社区  · 7 年前

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

    为了做到这一点,根据typeorm文档,我必须做以下工作。 在 照片 实体:

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

    井号标签 实体:

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

    我读到所有实体都急切地被加载到typeorm中。这是否意味着每次查询哈希标签时,我都会实现与它相关联的所有照片? 如果是这样的话,那就很糟糕了,因为我只需要引用照片中的标签,而不是相反的方式。

    我该怎么解决?我应该用一个 OneToOne 关于 照片 实体或是否有方法使单向 ManyToOne 是吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Aaron Ullal    6 年前

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