How to populate limited columns from relational entity?

21 Views Asked by At

I have an entity milestone in typeorm which has one-to-many relationship with user entity. Now I want to find data of a milestone using milestone ID with populated data of userEntity. But from user entity I want to populate only two properties First Name and Last name. How I can do this using query builder in nestjs?

async findMilestoneWithUserDetails(milestoneId: number) {
    return this.milestoneRepository
               .createQueryBuilder('milestone')
               .leftJoinAndSelect('milestone.users', 'user') // Load the related users
               .addSelect(\['user.firstName', 'user.lastName'\]) // Select only firstName and lastName from   User entity
               .where('milestone.id = :milestoneId', { milestoneId })
               .getOne();
}
1

There are 1 best solutions below

0
Hai Alison On

You should change leftJoinAndSelect to leftJoin in your query builder

Your code will be:

           this.milestoneRepository
               .createQueryBuilder('milestone')
               .leftJoin('milestone.users', 'user') // Load the related users
               .addSelect(['user.firstName', 'user.lastName']) // Select only firstName and lastName from   User entity
               .where('milestone.id = :milestoneId', { milestoneId })
               .getOne();