我可以将实体字段名称映射到Typeorm中的别名列名



我正处于带有typeorm的从轨道到内斯特的迁移的过程。出于历史原因,导轨中的表名称和列名是snaked_cased-我不想将此滋扰复制到我们的Nestjs/React侧。

我可以在Nestjs(typeorm(中创建一个称为firstName的实体字段,但映射到我的DB中名为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)
}

我终于在文档中找到了我要寻找的东西。@Column属性接收了许多属性,其中之一是name,它可以定义与字段关联的列名。

我更新的实体:

@Entity({ name: 'system_users' })
export class User {
  @PrimaryGeneratedColumn()
  id: number;
  @Column({ length: 255, name: "first_name" })
  firstName: string; 
  @Column({ length: 255, name: "last_name" })
  lastName: string; 
}

如果其他任何人遇到此问题,请知道Typeorm支持命名策略。
甚至还有一个用于蛇案件命名策略的软件包

最新更新