Comment rechercher un mot dans une colonne de 2 référentiels différents en utilisant une seule requête (MySQL avec TYPEORM et Nestjs)
P粉122932466
P粉122932466 2024-02-26 15:52:00
0
1
262

J'utiliseMySQLetTypeormdans la dernière version denestjset 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粉122932466
P粉122932466

répondre à tous (1)
P粉410239819

TypeORMvous permet d'utiliser n'importe quelle requête de votre choix. UtilisezentityManager.query()voici ladocumentation. p>

    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!