首页 > 解决方案 > TypeORM:在 PostgreSQL 中使用原始 SQL 时出现 QueryFailedError

问题描述

我浏览了 NPM 上的 TypeORM 快速入门:https ://www.npmjs.com/package/typeorm

我添加了一些代码来试验原始 SQL 查询,但我立即得到一个 QueryFailedError。

我很好奇如何在下面的示例中使用原始 SQL?

我验证了表和实体是使用 TypeORM 的 connection.manager 的 find 方法创建的,并且我还通过 pgAdmin 手动检查了表。为了更好地衡量,我使用 pgAdmin 来生成初始 SQL,然后我对其进行了最低限度的修改。

我还验证了 ormconfig.json 文件中的 synchronize 设置为 true。

索引.ts

import "reflect-metadata";
import {createConnection} from "typeorm";
import {User} from "./entity/User";

createConnection().then(async connection => {
    const user = new User();
    user.firstName = "Timber";
    user.lastName = "Saw";
    user.age = 25;
    await connection.manager.save(user);

    let data = await connection.query(
        `SELECT firstName FROM public.user;`
    );
}).catch(error => console.log(error));

来自堆栈跟踪和错误信息的错误:

QueryFailedError: column "firstname" does not exist
...
message: 'column "firstname" does not exist',
name: 'QueryFailedError',
length: 108,
severity: 'ERROR',
code: '42703',
detail: undefined,
hint: undefined,
position: '8',
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'parse_relation.c',
line: '3293',
routine: 'errorMissingColumn',
query: 'SELECT firstName FROM user;',

标签: postgresqltypescripttypeorm

解决方案


推荐阅读