我正在尝试获取entity
中包含的所有列,但是我只能从另一个实体中获取没有任何关系的列。
我使用此代码块将所有行提取到该存储库。
private translationTextRepository = getRepository(TranslationText);
async all(request: Request, response: Response, next: NextFunction) {
return this.translationTextRepository.find();
}
这是该存储库的entity
。
@Entity('TranslationText')
export class TranslationText {
@PrimaryGeneratedColumn()
ID: number;
@Column()
CreatedBy: string;
@Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
CreatedDate: Date;
@Column()
Status: boolean;
@Column({ nullable: true, default: null })
ModifiedBy: string;
@Column({ type: 'timestamp', nullable: true, default: null })
ModifiedDate: Date;
@Column()
Text: string;
@ManyToOne((type) => Locale, (locale) => locale.ID)
@JoinColumn({ name: 'LocaleID' })
LocaleID: Locale;
@ManyToOne((type) => TranslationTitle, (translationTitle) => translationTitle.ID)
@JoinColumn({ name: 'TranslationTitleID' })
TranslationTitleID: TranslationTitle;
}
但是我只能提取LocaleID
和TranslationTitleID
以外的所有列。
我该如何实现?
答案 0 :(得分:1)
您可以尝试指定类似的关系吗?
async all(request: Request, response: Response, next: NextFunction) {
return this.translationTextRepository.find({
relations:["LocaleID","TranslationTitleID"]
});
}
因为您必须明确表示希望与查询建立联系。
答案 1 :(得分:0)
检查此文档: https://typeorm.io/#/relations-faq/how-to-use-relation-id-without-joining-relation 解决方案:
定义新列:
@column()
LocaleID:数字
将旧的重命名为:Locale
但是由于外键问题,typeOrm无法同步您的表。
搜索结果将包含关系Locale对象,您可以从中获取ID。