当我 运行 命令时,TypeORM 正在复制我的 post | CQRS
TypeORM is duplicating my post when I run the command | CQRS
我在 nestJs 中使用 CQRS 和 TypeORM 来创建用户、订单和产品应用程序。
我在 typeorm 中有这些实体,当我 运行 创建用户的命令时,我收到电子邮件重复的错误,当检查数据库时发现有 2 个用户具有不同的 ID 但是其中一个是空的。我不知道发生了什么。
用户实体:
@Entity()
export class UserEntity {
@PrimaryGeneratedColumn('uuid')
id!: string;
@Column({unique: true})
email!: string;
@Column()
password!: string;
@Column()
name!: string;
@Column()
role!: string;
@OneToMany(type => OrderEntity, order => order.userId)
orders?: OrderEntity[] | any;
@OneToMany(type => ItemEntity, item => item.userId)
items?: ItemEntity[] | any;
}
订单实体:
@Entity()
export class OrderEntity {
@PrimaryGeneratedColumn('uuid')
id!: string;
@Column()
buyerName!: string;
@Column()
buyerPhone!: number;
@Column()
buyerEmail!: string;
@Column()
shippingMethod!: string;
@Column()
shippingAddress!: string;
@Column()
shippingCity!: string;
@Column()
shippingRegion!: string;
@Column()
shippingCountry!: string;
@Column({ type: 'datetime'})
creationDate!: Date;
@Column({ type: 'datetime'})
pack_promise_min!: Date;
@Column({ type: 'datetime'})
pack_promise_max!: Date;
@Column({ type: 'datetime'})
ship_promise_min!: Date;
@Column({ type: 'datetime'})
ship_promise_max!: Date;
@Column({ type: 'datetime'})
delivery_promise_min!: Date;
@Column({ type: 'datetime'})
delivery_promise_max!: Date;
@Column({ type: 'datetime'})
ready_pickup_promise_min!: Date;
@Column({ type: 'datetime'})
ready_pickup_promise_max!: Date;
@Column()
status!: string;
@ManyToOne(type => UserEntity, user => user.orders)
userId: UserEntity | any;
@ManyToMany(type => ItemEntity, item => item.id, { cascade: true })
@JoinTable({ name: 'orders_items'})
items: ItemEntity[];
}
物品实体:
@Entity()
export class ItemEntity {
@PrimaryGeneratedColumn('uuid')
id!: string;
@Column()
name!: string;
@Column()
qty!: string;
@Column()
weight!: number;
@ManyToOne(type => UserEntity, user => user.items)
userId!: UserEntity | any;
@ManyToMany((type => OrderEntity), order => order.id, {cascade: true})
orders?: OrderEntity[]
}
自从我宣布关系以来,这一切都发生了,我认为问题就在那里。
这发生在数据库中:
答案太蠢了,像我xD。我在控制器上做了一个 console.log ,只是为了查看一些信息,并且命令自己执行了两次。对不起,我错了。
我在 nestJs 中使用 CQRS 和 TypeORM 来创建用户、订单和产品应用程序。
我在 typeorm 中有这些实体,当我 运行 创建用户的命令时,我收到电子邮件重复的错误,当检查数据库时发现有 2 个用户具有不同的 ID 但是其中一个是空的。我不知道发生了什么。
用户实体:
@Entity()
export class UserEntity {
@PrimaryGeneratedColumn('uuid')
id!: string;
@Column({unique: true})
email!: string;
@Column()
password!: string;
@Column()
name!: string;
@Column()
role!: string;
@OneToMany(type => OrderEntity, order => order.userId)
orders?: OrderEntity[] | any;
@OneToMany(type => ItemEntity, item => item.userId)
items?: ItemEntity[] | any;
}
订单实体:
@Entity()
export class OrderEntity {
@PrimaryGeneratedColumn('uuid')
id!: string;
@Column()
buyerName!: string;
@Column()
buyerPhone!: number;
@Column()
buyerEmail!: string;
@Column()
shippingMethod!: string;
@Column()
shippingAddress!: string;
@Column()
shippingCity!: string;
@Column()
shippingRegion!: string;
@Column()
shippingCountry!: string;
@Column({ type: 'datetime'})
creationDate!: Date;
@Column({ type: 'datetime'})
pack_promise_min!: Date;
@Column({ type: 'datetime'})
pack_promise_max!: Date;
@Column({ type: 'datetime'})
ship_promise_min!: Date;
@Column({ type: 'datetime'})
ship_promise_max!: Date;
@Column({ type: 'datetime'})
delivery_promise_min!: Date;
@Column({ type: 'datetime'})
delivery_promise_max!: Date;
@Column({ type: 'datetime'})
ready_pickup_promise_min!: Date;
@Column({ type: 'datetime'})
ready_pickup_promise_max!: Date;
@Column()
status!: string;
@ManyToOne(type => UserEntity, user => user.orders)
userId: UserEntity | any;
@ManyToMany(type => ItemEntity, item => item.id, { cascade: true })
@JoinTable({ name: 'orders_items'})
items: ItemEntity[];
}
物品实体:
@Entity()
export class ItemEntity {
@PrimaryGeneratedColumn('uuid')
id!: string;
@Column()
name!: string;
@Column()
qty!: string;
@Column()
weight!: number;
@ManyToOne(type => UserEntity, user => user.items)
userId!: UserEntity | any;
@ManyToMany((type => OrderEntity), order => order.id, {cascade: true})
orders?: OrderEntity[]
}
自从我宣布关系以来,这一切都发生了,我认为问题就在那里。
这发生在数据库中:
答案太蠢了,像我xD。我在控制器上做了一个 console.log ,只是为了查看一些信息,并且命令自己执行了两次。对不起,我错了。