gpt4 book ai didi

foreign-keys - TypeORM 关系 : Only IDs instead of whole instances

转载 作者:行者123 更新时间:2023-12-04 01:35:07 26 4
gpt4 key购买 nike

根据documentation , 在 TypeORM 中,关系定义如下:
一个用户只有一个配置文件。

import {Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn} from "typeorm";
import {Profile} from "./Profile";

@Entity()
export class User {

@PrimaryGeneratedColumn()
id: number;

@Column()
name: string;

@OneToOne(type => Profile)
@JoinColumn()
profile: Profile;

}

问题

创建新用户时,为什么我必须传递实体的完整实例( profile: Profile )而不是 - 像往常一样 - 只有一个 ID?像这样:
@OneToOne(type => Profile)
@JoinColumn()
profileId: number;

没有别的办法吗?

如果您必须对 4 个外键进行 4 次查询以获取相应的实例而不是 ID,则此过程会导致大量不必要的开销。

我将非常感谢帮助解决这个问题!

最佳答案

在 TypeORM 中,导航字段(此处为 profile )可以与普通外键字段( profileId )结合使用。所以你可以写:

@Entity()
export class User {

@PrimaryGeneratedColumn()
id: number;

@Column()
name: string;

@OneToOne(type => Profile)
@JoinColumn()
profile: Profile;

@Column()
profileId: number;

}

然后由您决定是更新与实体对象的关系还是仅更新配置文件 ID。

关于foreign-keys - TypeORM 关系 : Only IDs instead of whole instances,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59831159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com