Rumah  >  Soal Jawab  >  teks badan

Cara mencari perkataan dalam lajur 2 repositori berbeza menggunakan satu pertanyaan (MySQL dengan TYPEORM dan Nestjs)

Saya menggunakan MySQL dan Typeorm dalam versi terkini nestjs dan saya mempunyai entiti berikut:

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 Tapis pertanyaan

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 Penapis sebut harga

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

Setiap pertanyaan berfungsi dengan baik tetapi apa yang saya mahu lakukan ialah menggabungkan dua pertanyaan ini menjadi satu pertanyaan supaya saya boleh mendapatkan hasil carian daripada kedai dan menawarkan serta mengisih rekod dan kemudian memohon langkau dan terimanya. Adakah ada cara untuk melakukannya?

P粉122932466P粉122932466236 hari yang lalu291

membalas semua(1)saya akan balas

  • P粉410239819

    P粉4102398192024-02-27 10:39:41

    TypeORM membolehkan anda menggunakan sebarang pertanyaan yang anda mahukan. Gunakan entityManager.query() di sini ialah dokumentasi.

    balas
    0
  • Batalbalas