Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

335
Vistas
Filtrado de relaciones de muchos a muchos en typeorm

Así que tengo dos entidades Target y Contact que tienen una relación de muchos a muchos. ¿Cómo puedo filtrar el contacto en función de un objetivo en particular en typeorm.

 export class Contact { @PrimaryGeneratedColumn() id: number; @Column() name: string; @Column() contactno: string; @Column() email: string; @ManyToMany( () => Target, target => target.contacts ) @JoinTable() targets: Target[]; } export class Target { @PrimaryGeneratedColumn() id: number; @Column() name: string; @ManyToMany( () => Contact, contact => contact.targets, { cascade: true } )

}

Ahora estoy buscando usando el siguiente queryBuilder

 this.contactRepository .createQueryBuilder("contact") .select(["contact"]) .leftJoinAndSelect("contact.targets", "target") .where("contact.targets= :targets", {targets: "4"}) .getMany();

Pero esto está produciendo un

 QueryFailedError: column contact.contactId does not exist at new QueryFailedError (/home/niel_99/Internship/wf/src/api/node_modules/typeorm/error/QueryFailedError.js:11:28) at Query.callback (/home/niel_99/Internship/wf/src/api/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:176:38) at Query.handleError (/home/niel_99/Internship/wf/src/api/node_modules/pg/lib/query.js:146:19) at Connection.connectedErrorMessageHandler (/home/niel_99/Internship/wf/src/api/node_modules/pg/lib/client.js:233:17) at Connection.emit (events.js:310:20) at /home/niel_99/Internship/wf/src/api/node_modules/pg/lib/connection.js:109:10 at Parser.parse (/home/niel_99/Internship/wf/src/api/node_modules/pg-protocol/dist/parser.js:42:17) at Socket.<anonymous> (/home/niel_99/Internship/wf/src/api/node_modules/pg-protocol/dist/index.js:8:42) at Socket.emit (events.js:310:20) at addChunk (_stream_readable.js:286:12) at readableAddChunk (_stream_readable.js:268:9) at Socket.Readable.push (_stream_readable.js:209:10) at TCP.onStreamRead (internal/stream_base_commons.js:186:23)

Tengo una tabla de contactos, una tabla de destino y una tabla contact_targets_target en mi base de datos, donde contact_targets_target almacena contactId contra targetId

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

en mi caso no usé querybuilder, pero puedes probar .find o .findandcount exemple:

 let res = await this.userRepository.findAndCount({ relations: ["roles", "company"],//this for the relation many-to-many where: `(username like '%${seachValue}%' or firstname like '%${seachValue}%' or lastname like '%${seachValue}%' or email like '%${seachValue}%')`, order: { username: sortDirection, }, skip: pageNumber * listeNumber, take: listeNumber, });
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda