在 typeorm
的 QueryBuilder
中, 如果你想要在你的查询结果中删除返回列的前缀,可以使用 select
方法时指定列名,并且可以通过别名(alias)的方式移除前缀。以下是一个通过 QueryBuilder
删除返回列前缀的示例:
假设我们有一个名为 User
的实体,它有 id
和 name
两个字段,我们通常会这样查询:
typescriptconst users = await connection .getRepository(User) .createQueryBuilder("user") .select(["user.id", "user.name"]) .getMany();
这将返回类似于以下的结果,其中列带有 user
前缀:
json[ { "user.id": 1, "user.name": "John Doe" }, { "user.id": 2, "user.name": "Jane Doe" } ]
如果我们想要移除这些前缀,我们可以给 select
方法中的字段指定一个别名,而不使用表的别名。这样做可以避免返回的结果中包含表的别名作为前缀。示例如下:
typescriptconst users = await connection .getRepository(User) .createQueryBuilder("user") .select("user.id", "id") .addSelect("user.name", "name") .getMany();
执行上面的查询后,将会得到如下结果,没有 user
前缀:
json[ { "id": 1, "name": "John Doe" }, { "id": 2, "name": "Jane Doe" } ]
在这个例子中,通过为每个选择的字段指定一个没有前缀的别名,我们成功地在查询结果中移除了列前缀。
2024年6月29日 12:07 回复