【发布时间】:2020-05-27 20:47:12
【问题描述】:
您好,我正在使用带有 TypeOrm 的 NestJs,目前连接到 MongoDB(但我想独立,因为大多数客户使用 MSSQL 和 Postgres 数据库)。
基本上我想将键/值对存储到数据库中。两者都是String 类型。这是持有该对的映射实体
@Entity()
export class Mapping extends BaseEntity {
@PrimaryColumn()
key: string;
@Column()
value: string;
}
存储库当前为空
@EntityRepository(Mapping)
export class MappingsRepository extends Repository<Mapping> {}
在我的服务文件中,我尝试通过键查找值
public async getValueByKey(key: string): Promise<string> {
const mapping: Mapping = await this.mappingsRepository.findOne(key);
if (!mapping) {
throw new NotFoundException(`Key ${key} does not exist`);
}
return mapping.value;
}
不幸的是,findOne 函数在传入密钥时总是抛出这个错误
传入的参数必须是单个 12 字节的字符串或 24 个十六进制字符
我该如何解决这个问题,以便我可以传入String 类型的任何键?参数key 已定义,我尝试使用f 或ffsdagsdgfdg 等虚拟值
【问题讨论】:
-
key的值是多少?确保已定义。 -
已定义。我用随机字符串对其进行了测试。所以参数本身带有一个不为空的随机字符串