当前位置: 首页 > 知识库问答 >
问题:

我可以将实体字段名映射到TypeForm中的别名列名吗?

须原
2023-03-14

我正在使用TypeORM从Rails迁移到NestJs。由于历史的原因,Rails中的表名和列名都是蛇形的——我不想把这个讨厌的东西复制到我们的NestJs/React端。

是否可以在NestJS(typeorm)中创建名为firstName但映射到DB中名为first_name的列的实体字段?

我的桌子

sql prettyprint-override">+-------------+--------------+----------------------------+
|                      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)
}

共有2个答案

慕容晔
2023-03-14

如果其他人遇到这个问题,要知道TypeORM支持命名策略。
甚至还有一个蛇案例命名策略包

甘兴学
2023-03-14

我终于在留档里找到了我要找的东西。属性接收许多属性,其中一个属性是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; 
}
 类似资料:
  • 我正在使用访问数据的Spring Boot项目中工作,并且我在使用

  • 问题内容: Jackson json注释中以下jax-b注释的等效方式是什么? 我需要生成json而不是xml,并且需要了解在jax-b中等效表示的常规jackson批注。 重命名字段。 使用getter代替字段。 如果json / xml元素名称是Java保留字(例如“ ”,“ ”,“ ”等),则这些功能尤其重要。 因此我们必须将POJO字段分别命名为“ new ”,“ _ public ”,“

  • 实体类如下: 是否有任何方法可以将实体中的Transstatus列映射到枚举的整数值,即状态代码,例如,如果我有枚举值作为NOT_FOUND实体中的Transstatus值应该是12, 编辑请注意,我有两个枚举状态码的值,状态码字符串,我们想要的只是状态码,我们已经用“Ordinal”尝试过了,它打印枚举的整数值,而不是我示例中的状态码

  • 我将php中的Symfony与此捆绑包一起使用:https://github.com/hslavich/OneloginSamlBundle 使用onelogin php saml工具包:https://github.com/onelogin/php-saml 身份验证时我的IDP返回需要从oid映射到友好名称的属性 如果我在symfony bundles配置中使用oid名称,并且没有友好的名称,

  • 问题内容: 无论如何,我可以在现有的Elasticsearch映射中重命名元素而不必添加新元素?如果是这样,为了避免破坏现有映射,最好的方法是什么? 例如从fieldCamelcase到fieldCamelCase 问题答案: 您可以通过创建一个Ingest管道来做到这一点,该管道包含一个Rename Processor 和Reindex API 。 请注意,您需要运行Elasticsearch

  • 当我重命名应用程序packagename并尝试启动springboot时,我得到一条错误消息。错误消息如下: