[英]ER_PARSE_ERROR in Nest js
您好,我對 NestJS 中的關系有疑問。
我試圖讓用戶與名為 club 這樣的關系:
async findOne(id: number): Promise<User> {
return this.userRepository.findOne({
where: { id: id },
relations: ['club'],
});
}
這會引發此錯誤:
ER_PARSE_ERROR: You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE `User`.`id` = 1) `distinct Alias` ORDER BY `User_id` ASC LIMIT 1' at line 1
我認為我的實體看起來是正確的,MariaDB 有問題嗎?
有我的用戶實體:
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
@Unique('email_unique', ['email'])
email: string;
@Column()
@Unique('username_unique', ['username'])
username: string;
@Column()
password: string;
@Column({ type: 'boolean' })
active = false;
@Column()
activationToken: string;
@OneToOne(() => Club, (club) => club.user)
club: Club;
}
和俱樂部實體:
@Entity()
export class Club {
@PrimaryGeneratedColumn()
id: number;
@ManyToOne(() => League)
league: League;
@OneToOne(() => User, (user) => user.club)
user: User;
@Column()
name: string;
@Column()
location: string;
@OneToMany(() => Player, (player) => player.club)
players: Player[];
}
您缺少JoinColumn
注釋 - 這可能是錯誤生成 sql 的原因。 嘗試在擁有JoinColumn
,例如
export class User {
// ...
@OneToOne(() => Club, (club) => club.user)
@JoinColumn()
club: Club;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.