首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从关系中获取字段而不是对象(typeorm)

从关系中获取字段而不是对象(typeorm)
EN

Stack Overflow用户
提问于 2022-05-19 09:01:27
回答 2查看 622关注 0票数 0

我对typeorm很陌生,当我想检索具有关系的表时,该关系的列将在一个具有该表名称的对象中检索。下面是一个例子

代码语言:javascript
复制
import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from "typeorm"
import { Photo } from "./Photo"

@Entity()
export class User {
    @PrimaryGeneratedColumn()
    id: number

    @Column()
    name: string

    @OneToMany((type) => Photo, (photo) => photo.user)
    photos: Photo[]
}
代码语言:javascript
复制
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from "typeorm"
import { User } from "./User"

@Entity()
export class Photo {
    @PrimaryGeneratedColumn()
    id: number

    @Column()
    url: string

    @ManyToOne((type) => User, (user) => user.photos)
    user: User
}
代码语言:javascript
复制
const user = await createQueryBuilder("user")
    .leftJoinAndSelect("user.photos", "photo")
    .where("user.name = :name", { name: "Timber" })
    .getOne()

结果

代码语言:javascript
复制
{
    id: 1,
    name: "Timber",
    photos: [{
        id: 1,
        url: "me-with-chakram.jpg"
    }, {
        id: 2,
        url: "me-with-trees.jpg"
    }]
}

我希望将关系的字段与表中的字段放在相同的级别上。

预期结果

代码语言:javascript
复制
{
   {
    id: 1,
    name: "Timber",
    id: 1,
    url: "me-with-chakram.jpg"
    }
   {
    id: 1,
    name: "Timber",
    id: 2,
    url: "me-with-trees.jpg"
    }
}

有办法这样做吗?我在他们的文档里什么都没找到

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-22 14:27:38

我试着用“*”,它起了作用

代码语言:javascript
复制
  const user = await createQueryBuilder("user")
        .leftJoinAndSelect("user.photos", "photo")
        .select('*')
        .where("user.name = :name", { name: "Timber" })
        .getOne();
票数 0
EN

Stack Overflow用户

发布于 2022-05-19 10:28:40

你可以试试这个,

代码语言:javascript
复制
const user = await createQueryBuilder("user")
    .leftJoinAndSelect("user.photos", "photo")
    .select([
            'user.id',
            'user.name',
            'photos.id',
            'photos.url'
        ])
    .where("user.name = :name", { name: "Timber" })
    .getOne();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72301594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档