TypeORM 是不是支持输入和输出的原始 SQL 查询?

Posted

技术标签:

【中文标题】TypeORM 是不是支持输入和输出的原始 SQL 查询?【英文标题】:Does TypeORM supports raw SQL queries for input and output?TypeORM 是否支持输入和输出的原始 SQL 查询? 【发布时间】:2017-06-12 07:23:54 【问题描述】:

我想知道 TypeORM 是否有支持插入更新删除选择等原始 sql 查询的功能。

【问题讨论】:

【参考方案1】:

根据这个问题comment,TypeORM 使您可以使用任何查询到您的心脏内容。使用entityManager.query() 这是documentation。

更新

上面的链接已经过时了,试试这个entity-manager-api。

const rawData = await manager.query(`SELECT * FROM USERS`);

【讨论】:

以上文档的链接已损坏/已更改。当前网址:typeorm.io/#/entity-manager-api api文档只有一行。传入参数的语法是什么? @OldGeezer 这取决于您使用的数据库。可以在此链接上找到 mysql 的示例github.com/typeorm/typeorm/issues/881#issuecomment-329364169 谢谢。是的,我忘了提到我正在使用的是 MySql。所以我看到它只是 ? 按位置。 另一个相关问题:Query 返回的结果是OkPacket 类型。我用谷歌搜索,只找到 一个 页面,它与 typeorm 无关。你知道我在哪里可以找到关于OkPacket 的更多信息吗?【参考方案2】:

2020 更新,entityManager.query() 基于 EntityManager 类的 entityManager,对我不起作用,所以必须这样做:

  import  getManager  from 'typeorm';

  const entityManager = getManager();
  const someQuery = await entityManager.query(`
  SELECT 
    fw."X",
    fw."Y",
    ew.*
  FROM "table1" as fw
  JOIN "table2" as ew
    ON fw."X" = $1 AND ew.id = fw."Y";
  `, [param1]);

https://orkhan.gitbook.io/typeorm/docs/working-with-entity-manager

【讨论】:

我想你错过了在 entityManager 之前等待?

以上是关于TypeORM 是不是支持输入和输出的原始 SQL 查询?的主要内容,如果未能解决你的问题,请参考以下文章

TypeORM 无关联关系的mysql多表连接查询

如何从 Java 中的 Oracle SQL 选择中获取原始脚本输出而不是查询结果

TypeORM:更改主键长度后出现重复输入错误

如何使用 NestJS 和 TypeORM 转换输入数据

TypeORM 中的 Postgres 枚举

无法使用 typeorm (NestJS) 在 SQL Server 中插入 bigint