Jos*_*eph 5 javascript node.js typeorm nestjs
我有一个Order和User实体
@Entity('orders')
export class Order {
@PrimaryGeneratedColumn()
id: number;
@Column('enum', {enum: OrderStatus, default: OrderStatus.NEW})
status: OrderStatus
@Column('float')
amount: number
@Column('float')
fees: number
@ManyToOne(() => User, (user) => user.orders)
user: User;
@OneToMany(() => OrderToProduct, orderToProduct => orderToProduct.order, {
cascade: true,
})
products: OrderToProduct[]
@CreateDateColumn()
createdAt: Date = new Date();
@UpdateDateColumn()
updatedAt: Date;
}
Run Code Online (Sandbox Code Playgroud)
@Entity('users')
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column({length: 255})
name: string;
@Column({length: 255, unique: true})
email: string;
@Column({length: 255})
password: string;
@CreateDateColumn()
createdAt: Date = new Date();
@OneToMany(() => Order, (order) => order.user)
orders: Order[];
@UpdateDateColumn()
updatedAt: Date;
@OneToMany(() => Product, (product) => product.user)
products: Product[]
}
Run Code Online (Sandbox Code Playgroud)
我想要的只是检索用户的订单,name我尝试的就是这样
this.orderRepository.find({
relations: {
user: {
id: true,
name: true
}
},
where: {
user: {
id: user.id
}
}
})
Run Code Online (Sandbox Code Playgroud)
但它返回一个错误
EntityPropertyNotFoundError:在“用户”中找不到属性“id”。确保您的查询正确。
但是如果我尝试像这样获取用户的所有对象,它就可以正常工作
relations: {
user: true
},
Run Code Online (Sandbox Code Playgroud)
typeorm 期望 id 和 name 是相关实体。由于它们是常规的原始列,因此它们应该位于选择选项中。
relations: {
user:true
},
where: {
user: {
id: user.id
}
},
select: {
user: {
id:true,
name: true
}
// your other columns from order entity.
}
Run Code Online (Sandbox Code Playgroud)