乐闻世界logo
搜索文章和话题

How to remove prefix from returned columns in typeorm querybuilder

4 个月前提问
3 个月前修改
浏览次数26

1个答案

1

typeormQueryBuilder 中, 如果你想要在你的查询结果中删除返回列的前缀,可以使用 select 方法时指定列名,并且可以通过别名(alias)的方式移除前缀。以下是一个通过 QueryBuilder 删除返回列前缀的示例:

假设我们有一个名为 User 的实体,它有 idname 两个字段,我们通常会这样查询:

typescript
const 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 方法中的字段指定一个别名,而不使用表的别名。这样做可以避免返回的结果中包含表的别名作为前缀。示例如下:

typescript
const 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 回复

你的答案