gpt4 book ai didi

sequelize.js - 在 nestjs/sequelize 上的 sequelize-typescript 中定义关系时出错

转载 作者:行者123 更新时间:2023-12-03 22:31:04 30 4
gpt4 key购买 nike

我收到一个错误

No overload matches this call


每当我尝试使用 @HasMany() 或 @BelongsTo 装饰器时。
我正在使用 nestjs/sequelize: "^0.2.0", sequelize: "^6.4.0"和 sequelize-typescript: "^2.0.0"
我可能遗漏了一些微不足道的东西,但这也可能是版本控制或这三个库之间的集成问题。它可能与 nestjs 无关,但我认为值得一提以防万一。
这是我的两个模型:
用户模型.ts
import {
AllowNull,
Column,
DataType,
HasMany,
HasOne,
IsEmail,
Model,
Table,
Unique,
} from 'sequelize-typescript';
import { Course } from '../courses/course.model';
import { UserRole } from './enums/user.roles.enum';


@Table
export class User extends Model<User> {
@Column
firstName: string;

@Column
lastName: string;

@IsEmail
@AllowNull(false)
@Unique
@Column
email: string;

@Column({ defaultValue: false })
verified: boolean;

@Column
verificationCode: string;

@Column
passwordHash: string;


@Column({ defaultValue: UserRole.STUDENT })
role: string;

@HasMany(() => Course)
courses: Course[];
}
类(class).model.ts
import {
AllowNull,
BelongsTo,
Column,
DataType,
ForeignKey,
HasOne,
IsEmail,
Model,
Table,
Unique,
} from 'sequelize-typescript';
import { User } from '../users/user.model';

@Table
export class Course extends Model<Course> {
@Unique
@Column
title: string;

@ForeignKey(() => User)
@Column
teacherId: number;

@BelongsTo(() => User)
@Column
teacher: User;
}

最佳答案

遵循此 issue 后解决
结果证明与 sequelize@6.3.5 相关,sequelize-typescript @1.1.0 & @2.0.0-beta.0
可以通过降级到 sequelize@6.1.1 来解决,
或从类声明中删除 <Course><User> 类型。
还在类(class)中从教师属性中删除 @Column 装饰器,这导致了不同的问题。

关于sequelize.js - 在 nestjs/sequelize 上的 sequelize-typescript 中定义关系时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66870308/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com