我正在使用TypeORM从Rails迁移到NestJs。 出于历史原因,Rails中的表名和列名使用了snaked_cased-我不想将此讨厌的东西复制到我们的NestJs / React端
我可以在NestJS(typeorm)中创建名为firstName的实体字段,但是将其映射到数据库中名为first_name的列吗?
我的桌子
+-------------+--------------+----------------------------+
| system_users |
+-------------+--------------+----------------------------+
| id | int(11) | PRIMARY KEY AUTO_INCREMENT |
| first_name | varchar(100) | |
| last_name | varcahr(100) | |
+-------------+--------------+----------------------------+
我的用户实体类
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity({ name: 'system_users' })
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column({ length: 255 })
first_name: string; <-- I WANT THIS TO BE firstName (camelCased)
@Column({ length: 255 })
last_name: string; <-- I WANT THIS TO BE lastName (camelCased)
}
答案 0 :(得分:0)
我终于在文档中找到了想要的东西。 @Column属性接收许多属性,其中之一是“名称”,可以定义与该字段关联的列名称。
我更新的实体:
@Entity({ name: 'system_users' })
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column({ length: 255, name: "first_name" })
firstName: string;
@Column({ length: 255, name: "last_name" })
last_name: string;
}
答案 1 :(得分:0)
如果其他人遇到此问题,请知道 TypeORM 支持 naming strategies。
甚至还有一个包 snake case naming strategy