
오늘 한 일
return await this.friendshipRepository
.createQueryBuilder('friendship')
.select(['friendship.id', 'friendship.is_friend', 'us.id', 'us.nickname', 'fr.id', 'fr.nickname'])
.where('friendship.user_id = :user_id', { user_id: user.id })
.orWhere('friendship.friend_id = :friend_id', { friend_id: user.id })
.andWhere('friendship.is_friend = true')
.leftJoin('friendship.user', 'us')
.leftJoin('friendship.friend', 'fr')
.getRawMany();
leftjoin을 쓰면 마지막 출력시 getMany()가 아닌 getRawMany()로 해야 제대로 출력이 된다!
(출처: https://stackoverflow.com/questions/64401212/how-to-select-specific-columns-in-typeorm-querybuilder)
await this.friendshipRepository
.createQueryBuilder()
.update(Friendship)
.set({ is_friend: true })
.where('friend_id = :friend_id', { friend_id: user.id })
.andWhere('id = :id', { id })
.execute();
update의 경우 update와 set을 사용하고 execute()로 마무리한다.
@Module({
imports: [
JwtModule.registerAsync({
useFactory: (config: ConfigService) => ({
secret: config.get<string>('JWT_SECRET_KEY'),
}),
inject: [ConfigService],
}),
TypeOrmModule.forFeature([User, Friendship]),
UserModule,
],
controllers: [FriendController],
providers: [FriendService],
})
imports 안에는 사용할 엔티티와 모듈을, controller와 providers에는 불러올 controller와 service를 적는데 항상 헷갈린다. (그리고 항상 똑같은 에러를 마주하고 시간을 허비한다...)
내일 해야할 일