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?
TypeORM membolehkan anda menggunakan sebarang pertanyaan yang anda mahukan. Gunakan entityManager.query() di sini ialah dokumentasi. p>