如何从mysql数据库返回保存的实体

时间:2019-12-10 13:19:45

标签: mysql typeorm

我将实体保存在数据库中。

    public async saveTask(toDoDto: CreateToDoDto) {
        try {
            const toDo: ToDo = this.todosRepository.create(toDoDto);
            return await this.todosRepository
                .createQueryBuilder()
                .insert()
                .into(ToDo)
                .values(toDo)
                .execute();
        } catch (err) {
            this.logger.error(err.message);
            throw new WsException(err.message);
        }
    }

将实体保存到数据库时,希望将其返回给我。

如何获取数据库中刚刚保存的实体?


return await this.todosRepository
    .createQueryBuilder()
    .insert()
    .into(ToDo)
    .values(toDo)
    .returning('*')
    .execute();

由于出现错误,我无法使用return函数。

  

仅Microsoft SQL Server或PostgreSQL数据库支持OUTPUT或RETURNING子句。

当我插入没有返回功能的数据库时,得到以下响应。

InsertResult {
    identifiers: Array(1),
    generatedMaps: Array(1),
    raw: OkPacket
}

在这个答案中,没有我写入数据库的实体。

如果返回函数不能正常工作,如何将记录的实体放入数据库中?

1 个答案:

答案 0 :(得分:0)

(MySQLi面向对象)

$last_id = $conn->insert_id; // $ conn是与sql的连接

(MySQLi程序)

$last_id = mysqli_insert_id($conn);

(PDO)

$last_id = $conn->lastInsertId();
相关问题