javascript - Hur man utför en like-fråga i TypeORM


Hej allihopa, jag försöker hitta alla resultat som har ett a i sig. Jag har provat några sätt men problemet är att inget fungerar. Det returnerar bara en tom array

var data = await getRepository(User)
  .createQueryBuilder("user")
  .where("user.firstName = %:name%", { name: firstName })
  .getMany();

och något liknande detta

var data = await getRepository(User)
  .createQueryBuilder("user")
  .where("user.firstName like %:name%", { name: firstName })
  .getMany();

men ingenting fungerar. Alla dessa ger mig en tom lista. Kan någon hjälpa mig, tack

Svar #1

Korrekt sätt är:

 var data = await getRepository(User)
                  .createQueryBuilder("user")
                  .where("user.firstName like :name", { name:`%${firstName}%` })
                  .getMany();

Svar #2

TypeORM erbjuder direkt en Like-funktion. Exempel från deras dokumentation:

import {Like} from "typeorm";

const loadedPosts = await connection.getRepository(Post).find({
    title: Like("%out #%")
});

i ditt fall:

var data = await getRepository(User).find({
    name: Like(`%${firstName}%`)
});

Relaterade artiklar