实体
实体是一个映射到数据库表的类
可以通过定义一个新类来创建一个实体,并用@Entity()标记:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity() export class Test { @PrimaryGeneratedColumn('uuid') id: number;
@Column() name: string;
@Column() password: string;
@Column() age: number; }
|
列
列相当于实体中的属性
主键
自增主键:
1 2
| @PrimaryGeneratedColumn() id: number
|
自增uuid:
1 2
| @PrimaryGeneratedColumn('uuid') id: number
|
列类型
给列指定详细的类型,和mysql类型是对应的
1 2 3 4 5 6 7 8 9
| @Column({ type: 'varchar', length: 200 }) password: string @Column({ type: 'int'}) age: number
@CreateDateColumn({ type: 'timestamp' }) create_time: Date
|
自动生成列
插入数据时会自动生成内容
1 2
| @Generated('uuid') uuid:string
|
枚举类
当列的字段只应有几个既定值时使用
1 2 3 4 5 6 7 8 9
| @Column({ type:'enum', enum:['1','2','3','4'], default:'1' }) xx: string
|
列选项
常用的列选项:
1 2 3 4 5 6 7 8 9 10 11 12
| @Column({ type: 'varchar', name: 'ip', nullable: true, comment: '注释', select: true, default: 'xxxx', primary: false, update: true, collation: '', }) ip: string;
|
所有选项:Column options
simple-array列类型
特殊列类型simple-array,可以将原始数组值存储在单个字符串列中,之中所有值都以逗号分隔(JSON数组)
之中存放的数组项不应该含有逗号,否则可能会出现数组切割的问题
1 2 3 4 5 6 7 8
| @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column('simple-array') names: string[]; }
|
simple-json列类型
特殊列类型simple-json,可以将对象转换为json字符串,并存储在数据库中,反之亦可
用于数据库中没有json类型、却又需要存储和加载对象的场景
1 2 3 4 5 6 7 8
| @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column("simple-json") profile: { name: string; nickname: string }; }
|