typescript - Typeorm查找查询不返回ManyToOne关系ID
问题描述
正如标题所说:
我有一张business-user
桌子和一张business-hours
桌子。buiness-hours
与 具有多对一关系business-user
。
侧的关系business-hours
定义如下。
@ManyToOne(() => BusinessUser, (businessUser) => businessUser.businessHours)
@JoinColumn()
businessUser: BusinessUser;
Typeorm 文档说这应该businessUserId
在它所做的表中创建一个字段。另外,由于这是主键上的关系,所以我不需要命名或引用它。但是当我做find
或findOne
查询时,businessUserId
不再返回。当我检查数据库时,字段和值按预期存在,只是它们没有在查找查询中返回。早些时候它工作正常,我正在获取所有表的关系表 ID,但现在它不再工作了。想知道是否有人可以帮助我或弄清楚发生了什么变化。我已经尝试过这里提出的类似问题的解决方案,但没有任何帮助。
解决方案
官方文档上有一个“官方”解决方法。它解释了“如何在不加入关系的情况下使用关系 ID”。
总而言之,您只需要添加一个myRelationId
(在您的情况下,businessUserId)
像这样向您的实体添加一列(例如):
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column({ nullable: true })
profileId: number; // <---------- You'll get only the id from here
@OneToOne(type => Profile)
@JoinColumn()
profile: Profile; // <----------- You don't want all the data
}
如果您这样做,显然,{relations : ["businessUser"]}
请从您的请求中删除。
推荐阅读
- python - 精确召回
- python - 使用 Maskrcnn 进行对象检测的准确性
- javascript - 防止 Nuxt auth 在 400 状态下重定向
- c# - “Dotnet ef 迁移添加”不创建迁移
- python - Pygame Mixer 音乐(多个音乐曲目)
- python - 使用 Python 检测 RTMP 直播流中的音频剪辑
- jquery - 如何选择 tr 兄弟并在表上输入
- generative-adversarial-network - 尝试运行 Pix2Pix 图像组合器,但由于 A 和 B 大小的不同而无法运行
- html - 使用 bulma 在图像两侧环绕文本
- java - 在 Kstream Spring kafka 应用程序中丢弃消息