Reputation: 49
I'm learning typeorm.
and I have a problem. Please help me
@Entity('user')
export class User extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column({ type: 'varchar', length: '100', unique: true })
email: string;
@Column({ type: 'varchar', length: '10', unique: true })
nickname: string;
@Column({ type: 'varchar', length: '100' })
password: string;
@CreateDateColumn({ name: 'created_at' })
createdAt: Date;
@UpdateDateColumn({ name: 'updated_at' })
updatedAt: Date;
// One to One
@Column({ nullable: true })
avatarId: number;
@OneToOne(() => Avatar)
@JoinColumn()
avatar: Avatar;
}
this is my User Enitity
@Entity('avatar')
export class Avatar extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column({ type: 'varchar', length: '255' })
src: string;
}
and this is my Avatar Entity
I want to join them and call, so My querybuilder is
const createdUser = await createQueryBuilder('user')
.leftJoinAndSelect('user.avatar', 'avatar')
.where('user.email = :email', { email })
.getOne();
but when I execute this, error is coming
"\"user\" alias was not found. Maybe you forgot to join it?"
I don't know where is error
I search docs and googling,
(I can't speak english well, it's hard...)
Please Help me what is fault
Upvotes: 0
Views: 6748
Reputation: 3366
Try to add a condition to your join:
.leftJoinAndSelect('user.avatar', 'avatar', 'avatar.id = user.avatarId')
or/and inverse side to the avatar column in the user entity
@OneToOne(() => Avatar, data => data.user)
@JoinColumn()
avatar: Avatar;
Upvotes: 2