Cara mencari perkataan dalam lajur 2 repositori berbeza menggunakan satu pertanyaan (MySQL dengan TYPEORM dan Nestjs)
P粉122932466
P粉122932466 2024-02-26 15:52:00
0
1
313

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粉122932466
P粉122932466

membalas semua(1)
P粉410239819

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan