TypeORM 在使用 .find()/.findOne() 时返回 undefined
Posted
技术标签:
【中文标题】TypeORM 在使用 .find()/.findOne() 时返回 undefined【英文标题】:TypeORM returning undefined when using .find()/.findOne() 【发布时间】:2022-01-23 21:50:42 【问题描述】:我正在尝试使用 TypeORM 查询我的 postgres 数据库,但我收到了 undefined
作为对 .find()
和 .findOne()
的响应。如果我使用原始 SQL 查询,我会得到一个结果。
const taskRepository = connection.getRepository(Task);
const task = await taskRepository.query("SELECT * FROM tasks WHERE id='c3af6724-ba96-4144-88a6-b351282ec3cb'");
const firstTask = await taskRepository.findOne('c3af6724-ba96-4144-88a6-b351282ec3cb'); // taskRepository.find() also returns undefined.
这是注销时的输出:
task: [
id: 'c3af6724-ba96-4144-88a6-b351282ec3cb',
break_duration: 20,
category: 'Code',
complete: false,
date: 2021-12-22T00:00:00.000Z,
name: 'My first code task!',
working_sessions: 4
],
firstTask: undefined
这是我的Task Entity
:
import Entity, PrimaryGeneratedColumn, Column from 'typeorm';
@Entity()
export class Task
@PrimaryGeneratedColumn('uuid')
id: string;
@Column()
break_duration: number;
@Column()
category: string;
@Column()
complete: boolean;
@Column()
date: Date;
@Column()
name: string;
@Column()
working_sessions: number;
我的连接配置如下:
type: 'postgres',
host: process.env.DB_HOST,
port: parseInt(process.env.DB_PORT),
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
entities: [Task],
synchronize: true,
我想知道我是否配置错误。
【问题讨论】:
【参考方案1】:在函数中定义列名:
... = await taskRepository.findOne(id:'c3af6724-ba96-4144-88a6-b351282ec3cb');
【讨论】:
以上是关于TypeORM 在使用 .find()/.findOne() 时返回 undefined的主要内容,如果未能解决你的问题,请参考以下文章
在 find() 中 TypeORM 查询相关的 oneToMany 值
TypeORM getRepository.find() 不包括外键字段