You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeORM中Repository find带where与select时报错问题排查

问题描述

目标SQL语句:

SELECT name from users WHERE flag = 1;

当前编写的TypeORM代码:

userRepository.find({
    where: {
        flag: 1
    },
    select: {
        name: true
    }
})

这段代码在移除select选项时可以正常执行,但添加后会报错,请问问题出在哪里?


问题原因与解决方案

问题出在select选项的写法上。TypeORM的find方法中,指定查询列的正确方式是使用字符串数组,而非对象形式。对象格式的select通常用于createQueryBuilder或特定查询方法的参数场景,并不适用于find方法的常规用法。

修正后的代码如下:

userRepository.find({
    where: {
        flag: 1
    },
    select: ["name"] // 改为字符串数组形式
})

额外注意:如果你的TypeORM版本较旧,部分版本对find方法的select参数支持有限,字符串数组是兼容性最好的写法。同时要确保实体类中通过@Column()装饰器正确定义了name字段,避免因字段名不匹配引发报错。

内容的提问来源于stack exchange,提问作者StormTrooper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 21:30:55