我有以下型号:
@Entity('user')
class UserModel {
@PrimaryColumn({
name: 'id',
type: 'varchar',
})
id: Ulid = generate()
...
@OneToMany(() => CourseModel, (course) => course.author)
courses?: CourseModel[]
}
@Entity('course')
class CourseModel {
@PrimaryColumn({
name: 'id',
type: 'varchar',
})
id: Ulid = generate()
...
@ManyToOne(() => UserModel, (user) => user.courses)
user?: UserModel
}
我需要查询用户并收到类似这样的信息:
{
id: '...',
...
courseIds: ['...', '...', etc...]
}
在 TypeORM 中我找不到任何加载
courseIds
的选项,只有 courses
。是否有一个选项可以在没有查询生成器的情况下执行此操作?
我尝试在 User 类中创建一个 getter,但它仍然需要加载所有用户。我也尝试过 queryBuilder 并且它有效,但它可能不是最好的解决方案。必须有一种方法可以在没有查询生成器的情况下完成它
我发现@RelationId装饰器适合这个。
只需使用:
@OneToMany(() => CourseModel, (course) => course.author)
courses?: CourseModel[]
@RelationId((course) => course.author)
courseIds: string[]