如何解决在 OneToOne 关系 typeorm postgres 的两边都有 RelationID
我有用户和个人资料实体,它们之间有一个一对一的关系。 我正在使用 typeorm 和 postgres 我在用户上使用了 joincolumn 并且可以访问用户端的 RelationId(或 Column)profileId 但是我也想在个人资料方面有 userId 我怎样才能做到这一点?
像这样:
export class User extends BaseEntity {
@OneToOne(()=>Profile)
profile:number
@Column()
profileId:number
}
////////
export class Profile extends BaseEntity{
@OneToOne(()=>Profile)
user: number
@Column()
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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。