NodeJS 如何在TypeORM和NestJS中的连接表上添加Where条件?

6pp0gazn  于 5个月前  发布在  Node.js
关注(0)|答案(2)|浏览(88)

我正在使用TypeORM处理一个项目,我试图在联接表中的列上添加一个WHERE条件。我有一个Reservation实体,它与Listing实体有多对一关系。下面是相关的代码片段:

findAllByUserId(userId: number) {
    return this.reservationRepository.find({
      relations: ['listing', 'listing.favourite'],
      where: { user_id: userId }
    });
  }

字符串
我在列表中的一个列上添加一个WHERE条件时遇到了问题。我希望有任何关于如何在TypeORM中正确地向连接表添加一个条件的指导。

3pmvbmvn

3pmvbmvn1#

试试下面这样的东西:

findAllByUserIdWithCondition(userId: number, conditionValue: string): Promise<Reservation[]> {
    return this.reservationRepository
      .createQueryBuilder('reservation')
      .innerJoinAndSelect('reservation.listing', 'listing')
      .innerJoinAndSelect('listing.favourite', 'favourite')
      .where('reservation.user_id = :userId', { userId })
      .andWhere('listing.columnName = :conditionValue', { conditionValue })
      .getMany();
  }
}

字符串

hi3rlvi2

hi3rlvi22#

试试这个

const reservations = await reservationRepository.find({
  relations: ['listing'],
  where: {
    userId: userId,
    // You can add additional conditions here for the 'listing' relation
    listing: { favourite: true } // replace `true` with your where condition
  },
});

字符串
这是我在项目中使用的代码:

const getQuestion = await this.sectionRepository.findOne({
       where: {
          id: sectionId,
          isActive: true,
          questions: {
            isActive: true,
          },
        },
        relations: {
          questions: { subQuestions: { options: true }},
        },
      });

相关问题