如何解决将模型与sequelize-typescript关联
我正在尝试创建以下关联:
用户有一个帐户 用户只有一个应用程序 应用程序中有很多成员
我的问题是,当创建模型时,帐户表会获得Application的外键,而成员表根本不会被创建。
有人知道我在做什么错吗?下面是我正在使用的代码
//index.ts
const sequelize = new Sequelize(database,username,password,params);
sequelize.addModels([
Member,Application,Account,User,]);
return sequelize;
//Member.ts
import {
Table,Column,Model,BelongsTo,ForeignKey,DataType,} from "sequelize-typescript";
import { Application } from "./application";
@Table({ tableName: "Members" })
export class Member extends Model<Member> {
@ForeignKey(() => Application)
@Column({ type: DataType.INTEGER })
applicationId: number;
@BelongsTo(() => Application)
application: Application;
}
// Application.ts
import {
Table,HasMany,} from "sequelize-typescript";
import { User } from "./user";
import { Member } from "./member";
@Table({ tableName: "Applications" })
export class Application extends Model<Application> {
@ForeignKey(() => User)
@Column({ type: DataType.INTEGER })
userId: number;
@HasMany(() => Member)
members: Member;
@BelongsTo(() => User)
user: User;
}
//Account.ts
import {
Table,} from "sequelize-typescript";
import { User } from "./user";
@Table({ tableName: "ZohoCrms" })
export class ZohoCrm extends Model<ZohoCrm> {
@ForeignKey(() => User)
@Column({ type: DataType.INTEGER })
userId: number;
@BelongsTo(() => User)
user: User;
}
//user.ts
export class User extend model<User> {
....
@HasOne(() => ZohoCrm,"userId")
zohoCrm: ZohoCrm;
@HasOne(() => Application,"userId")
application: Application;
}
解决方法
如果您使用的是webpack,则需要在表装饰器中添加tableName和modelName
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。