gpt4 book ai didi

Typeorm:列选项中@Unique 装饰器和{ unique: true } 之间有什么区别?

转载 作者:行者123 更新时间:2023-12-03 23:44:18 26 4
gpt4 key购买 nike

在 Typeorm 中,您可以在列选项中设置唯一标志,或将列设置为实体的唯一。
你什么时候会使用什么,有什么区别?@Unique(["firstName"]) https://typeorm.io/#/decorator-reference/unique

@Column({ unique: true })
firstName: string;
https://typeorm.io/#/decorator-reference/column

最佳答案

正如文档中所写 @Unique 只能应用于整个实体,而不是单个列。为了可读性,我更喜欢简单的约束 @Column({ unique: true }) 因为它位于受影响的变量名称之上。@Unique 语法的另一个优点是多列约束能力。您可以将多个列定义为一个唯一约束: @Unique(["firstName", "secondName"]) 。这对于 @Column 装饰器是不可能的。
最后,您可以在使用 @Unique 装饰器时为特定约束设置名称。以下单列约束定义功能相同,除了 @Unique 设置了一个人类可读的名称(注意:@Unique 需要实体变量字段名称,而不是实际的数据库列名称):

@Unique('my_unique_constraint', ['firstName'])  // make firstName unique
export class PersonEntity {

@Column({ unique: true }) // make firstName unique, too; decide which to chose
firstName: string;
...

关于Typeorm:列选项中@Unique 装饰器和{ unique: true } 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63793417/

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