So suchen Sie mit einer Abfrage nach einem Wort in einer Spalte von zwei verschiedenen Repositorys (MySQL mit TYPEORM und Nestjs)
P粉122932466
P粉122932466 2024-02-26 15:52:00
0
1
263

Ich verwende MySQL und Typeorm in der neuesten Version von nestjs und ich habe die folgenden Entitäten:

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 Abfrage filtern

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)
}

offer.service.ts Zitatfilter

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)
}

Jede Abfrage funktioniert einwandfrei, aber ich möchte diese beiden Abfragen in einer Abfrage kombinieren, damit ich die Suchergebnisse aus dem Geschäft abrufen und die Datensätze anbieten und sortieren und sie dann überspringen und akzeptieren kann. Gibt es eine Möglichkeit, das zu tun?

P粉122932466
P粉122932466

Antworte allen(1)
P粉410239819

TypeORM 使您能够随心所欲地使用任何查询。使用 entityManager.query() 这是文档。 p>

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!