乐闻世界logo
搜索文章和话题

TypeORM 和 MySQL 如何返回插入数据的 ID

4 个月前提问
3 个月前修改
浏览次数26

1个答案

1

在使用TypeORM与MySQL进行数据操作时,插入数据并获取新插入记录的ID是一个常见的需求。TypeORM提供了简单而直观的方法来处理这种情况。以下是如何操作的步骤和示例:

步骤 1: 定义实体

首先,确保你的实体类正确定义了。假设我们有一个名为 User 的实体,它有一个自动增长的ID。

typescript
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column() name: string; }

这里,@PrimaryGeneratedColumn() 装饰器自动地为每个新的实体生成一个唯一的ID。

步骤 2: 插入数据

使用TypeORM的Repository或EntityManager来插入数据。当你使用.save()方法时,TypeORM不仅会保存数据到数据库,还会返回一个包含了完整实体信息的对象,其中包括自动生成的ID。

typescript
import { getRepository } from "typeorm"; import { User } from "./entity/User"; async function createUser(name: string) { const userRepository = getRepository(User); const newUser = userRepository.create({ name }); const savedUser = await userRepository.save(newUser); console.log("插入的用户ID是:", savedUser.id); return savedUser.id; // 返回新插入的用户ID }

在这个例子中,savedUser 对象将包含所有的用户信息,包括数据库为该用户生成的ID。savedUser.id 就是新插入的用户的ID。

注意事项

  • 确保在定义实体时使用了 @PrimaryGeneratedColumn(),这对于自动生成ID是必要的。
  • 使用 .save() 方法时,TypeORM会处理实体的持久化并在返回的实体中包含生成的ID。这意味着你不需要进行额外的查询来获取ID。

通过上述步骤,你可以有效地在使用TypeORM和MySQL时插入数据并获取新插入数据的ID。这在处理关联数据插入时特别有用,例如,在创建一个新用户后立即需要使用该用户的ID来关联其他记录。

2024年6月29日 12:07 回复

你的答案