Maison > Questions et réponses > le corps du texte
J'utilise MySQL et Typeorm dans la dernière version de nestjs et j'ai les entités suivantes :
shop.entity.ts :
@Entity() export class Shop { @PrimaryGeneratedColumn("uuid") id: string; @Column({ unique: true, nullable: false }) name: string; @Column({ nullable: true }) description: string; @Column({ default: "" }) image_url: string; @Column({ default: true }) is_active: boolean; @Column({ default: false }) is_special: boolean; @Column({ nullable: false, default: () => "CURRENT_TIMESTAMP" }) created_at: Date; }
offer.entity.ts
@Entity() export class Offer { @PrimaryGeneratedColumn("uuid") id: string; @Column({ nullable: false }) name: string; @Column({ nullable: false }) fabric: string; @Column({ nullable: false }) code: string; @Column({ nullable: false }) start_date: Date; @Column({ nullable: false }) end_date: Date; @Column({ default: "" }) description: string; @Column({ nullable: false, default: () => "CURRENT_TIMESTAMP" }) created_at: Date; }
shop.service.ts Filtrer la requête
async filter(filter: FilterShopDto) { const queryBuilder = this.shopRepository .createQueryBuilder("shop") .where( `shop.description LIKE :description`, { description: filter.description ? `%${filter.description}%` : "%", }, ) .orderBy("shop.created_at", "DESC") .skip(filter.skip) .take(filter.take) }
offre.service.ts Filtre de devis
async filter(filter: FilterOfferDto) { const queryBuilder = this.offerRepository .createQueryBuilder("offer") .where( " offer.description LIKE :description", { description: filter.description ? `%${filter.description}%` : "%", }, ) .orderBy( "offer.created_at", "DESC", ) .skip(filter.skip) .take(filter.take) }
Chaque requête fonctionne bien, mais ce que je veux faire, c'est combiner ces deux requêtes en une seule requête afin de pouvoir obtenir les résultats de la recherche du magasin, proposer et trier les enregistrements, puis appliquer l'option Ignorer et les accepter. Y a-t-il un moyen de le faire ?
P粉4102398192024-02-27 10:39:41
TypeORM vous permet d'utiliser n'importe quelle requête de votre choix. Utilisez entityManager.query() voici la documentation. p>