Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 在一对一关系式词根的两边都有关系_Postgresql_Typeorm_One To One - Fatal编程技术网

Postgresql 在一对一关系式词根的两边都有关系

Postgresql 在一对一关系式词根的两边都有关系,postgresql,typeorm,one-to-one,Postgresql,Typeorm,One To One,我有用户和配置文件实体,它们一起有一个onetoone关系。 我正在使用打字和postgres 我在用户端使用了joincolumn,并且可以访问用户端的RelationId(或Column)profileId 不过,我希望在配置文件端也有userId 我怎样才能做到这一点 大概是这样的: 导出类用户扩展BaseEntity{ @OneTONE(()=>配置文件) 个人资料:编号 @第()列 profileId:编号 } //////// 导出类概要文件扩展BaseEntity{ @OneTON

我有用户和配置文件实体,它们一起有一个onetoone关系。 我正在使用打字和postgres 我在用户端使用了joincolumn,并且可以访问用户端的RelationId(或Column)profileId 不过,我希望在配置文件端也有userId 我怎样才能做到这一点

大概是这样的:

导出类用户扩展BaseEntity{
@OneTONE(()=>配置文件)
个人资料:编号
@第()列
profileId:编号
}
////////
导出类概要文件扩展BaseEntity{
@OneTONE(()=>配置文件)
用户:号码
@第()列
userId:number
}

您可以在文档中找到答案

关系可以是单向的,也可以是双向的。单向是仅在一侧具有关系装饰器的关系。双向关系是在关系的两侧与装饰者的关系

@JoinColumn只能位于关系的一侧-位于将拥有外键的表上

import {User} from "./User";

@Entity()
export class Profile {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    gender: string;

    @Column()
    photo: string;

    @OneToOne(type => User, user => user.profile) // specify inverse side as a second parameter
    user: User;

}

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, profile => profile.user) // specify inverse side as a second parameter
    @JoinColumn()
    profile: Profile;

}

谢谢你的评论。在一对一关系中,关系Id仅存储在包含joinColumn的表中。我希望双方都有房地产ID。在当前情况下,我将只在用户实体上使用profileId。我还希望配置文件实体上有userId。我正在使用graphql,我需要先查询用户,而Oput必须先查询配置文件。您可以使用类似这样的
this.profileRepository.findOne({where:{profileId:1},relations:['user']})
然后描述graphQlL ObjectType DTO,其中将是配置文件和用户。或者您应该阅读文档并使用关系/FilterableRelation Decorators谢谢,这似乎是一个很好的选择。我要试一试。