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

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

【问题讨论】:

    标签: orm typeorm


    【解决方案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 之前等待?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 2018-07-04
    相关资源
    最近更新 更多