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