一对一关系(One-to-One)
在这里就以一个用户表和抽奖次数表为例 一个用户拥有多少次抽奖机会 就是一对一的关系
import {Column, Entity, ManyToOne, PrimaryGeneratedColumn, JoinColumn, OneToMany, OneToOne} from 'typeorm'
import {RoleEntity} from '@entity/role.entity'
import {LotteryRecordEntity} from '@entity/lotteryRecord.entity'
import {LotteryChancesEntity} from '@entity/lotteryChances.entity'
@Entity({name: 'user'})
export class UserEntity {
@PrimaryGeneratedColumn({type: 'int'})
id: number
@Column({type: 'varchar', length: 255, nullable: false})
name: string
@Column({nullable: true, default: 'man'})
gender: string
@Column({nullable: true, default: 0})
age: number
@Column({nullable: false, unique: true, type: 'bigint'})
phone: string
@Column({nullable: true})
description: string
@Column({nullable: true, type: 'datetime', name: 'create_time'})
createTime: Date
@Column({type: 'varchar', length: 255, nullable: false})
password: string
// many users can have one role. explicit inverse and join column (role_id)
@ManyToOne(() => RoleEntity, role => role.users, {nullable: true})
@JoinColumn({name: 'role_id'})
role: RoleEntity | null
// @OneToMany(() => LotteryRecordEntity, lotteryRecord => lotteryRecord.user)
// lotteryRecords: LotteryRecordEntity[]
@OneToOne(() => LotteryChancesEntity, lotteryChances => lotteryChances.user)
lotteryChances: LotteryChancesEntity
}
2026/1/17大约 2 分钟