Nestjs/TypeORM - 如何按列实现自定义搜索

Ved*_*ic. 1 node.js typeorm nestjs

我正在使用 TypeORM 和 MySQL 来玩 NestJs。

我已经阅读了文档,并且已经制作了在本地运行的基本 CRUD 应用程序。我已经通过 id 内置了搜索(通过 Repository),但我还需要通过自定义列实现搜索。

例如我有这个实体:

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  username: string;

  @Column()
  first_name: string;

  @Column()
  last_Name: string;

  @Column()
  gender: string;
  
Run Code Online (Sandbox Code Playgroud)

在我的存储库中,我有这些内置方法:

async findAll(): Promise<User[]> {
    return this.usersRepository.find();
  }

  findOne(id: string): Promise<User> {
    return this.usersRepository.findOne(id);
  }
  
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,它工作得很好。我需要另一个自定义搜索,所以我也可以按用户名搜索,我该如何实现?我需要这样的东西:

findByUsername(username: string): Promise<User> {
    return this.usersRepository.findByUsername(username);
  }
Run Code Online (Sandbox Code Playgroud)

我假设我必须实现自定义查询,但我不知道在哪里做:(

top*_*oon 6

这是更简单的解决方案:

findByUsername(username: string): Promise<User | undefined> {
    return this.usersRepository.findOne({ username }); 
}
Run Code Online (Sandbox Code Playgroud)