Mik*_*ulo 8 node.js typescript typeorm
并且仍然设法在另一个实体中执行@OneToMany。
export class ProductsOfOrder {
@ManyToOne(() => Order, order => order.products)
order: Order
@ManyToOne(() => Product)
product: Product
@Column({type: 'integer'})
amount: number
}
Run Code Online (Sandbox Code Playgroud)
使用 order 外键的情况
@Entity()
export class Order {
@PrimaryGeneratedColumn('uuid')
id: string
@ManyToOne(() => User)
user: User
@OneToMany(() => ProductsOfOrder, productsOfOrder => productsOfOrder.order, {cascade: true})
products: ProductsOfOrder[]
}
Run Code Online (Sandbox Code Playgroud)
咳咳,当然,你可以在 TypeORM 中创建没有主键的表。
这是一个不错的肮脏的小技巧:
@Entity()
export class EntityWithoutPK {
/**
* ! This is a fake attribute
* This is a workaround for TypeORM's `MissingPrimaryColumnError`
**/
@PrimaryColumn({ type: 'uuid', insert: false, select: false, update: false })
id: never;
// Other column definitions
}
Run Code Online (Sandbox Code Playgroud)
生成迁移文件,然后从生成的SQL中删除主列部分
将同步选项设置为 false
@Entity({ synchronize: false })
export class Order
Run Code Online (Sandbox Code Playgroud)
笔记
在应用黑客之前,请参阅以下清单。如果您对其中任何一个回答“否”,请创建一个主键。
synchronize: false选项可能会引起很多恐慌。对于您的情况,在订单表中创建主键是完全有意义的。
| 归档时间: |
|
| 查看次数: |
13306 次 |
| 最近记录: |