Saya menggunakanMySQLdanTypeormdalam versi terkininestjsdan 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?
TypeORMmembolehkan anda menggunakan sebarang pertanyaan yang anda mahukan. GunakanentityManager.query()di sini ialahdokumentasi. p>