Tengo un Order y Entidades 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; } @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[] } Todo lo que quiero es recuperar los pedidos con su name de usuario, solo lo que intento es así
this.orderRepository.find({ relations: { user: { id: true, name: true } }, where: { user: { id: user.id } } })pero regresa con un error
EntityPropertyNotFoundError: la propiedad "id" no se encontró en "Usuario". Asegúrate de que tu consulta sea correcta.
Pero si trato de obtener todo el objeto del usuario de esta manera, funciona bien
relations: { user: true },typeorm espera que id y name sean entidades relacionadas. dado que son columnas primitivas regulares, deben estar en la opción de selección.
relations: { user:true }, where: { user: { id: user.id } }, select: { user: { id:true, name: true } // your other columns from order entity. }