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?
TypeORM 使您能够随心所欲地使用任何查询。使用 entityManager.query() 这是文档。 p>