TypeORM:添加具有数组数据类型的列

使用 TypeORM 时,可以使用数组数据类型定义列。

如果要添加存储数字数组的列,可以这样定义:

@Column('integer', {
    array: true, // this is supported by postgreSQL only
    nullable: true,
})
sizes: number[];

如果您需要一个存储字符串数组的列,您可以像这样定义它:

@Column('simple-array', { nullable: true })
colors: string[];

请务必注意,您的数组的任何元素中都不得有任何逗号。

下面的示例创建了一个名为products的表,其中一些列的类型是数组:

// Product entity
import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
} from 'typeorm';

@Entity({name: 'products'})
export class Product {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  // array of numbers
  @Column('integer', {
    array: true, // this is supported by postgres only
    nullable: true,
  })
  sizes: number[];

  // array of strings
  @Column('simple-array', { nullable: true })
  colors: string[];

  @Column({ type: 'simple-array', nullable: true })
  materials: string[];

  @CreateDateColumn()
  createdAt: Date;
}

以下是我们保存新记录的方法:

const productRepository = dataSource.getRepository(Product);
const product = new Product();
product.name = 'KindaCode.com';
product.sizes = [1, 2, 3];
product.colors = ['red', 'blue', 'green'];
product.materials = ['wood', 'metal', 'plastic'];

await productRepository.save(product);

查看已添加到数据库的数据时,您会看到如下内容:

TypeORM:添加具有数组数据类型的列