在TypeORM中,可以通过使用@JoinColumn
装饰器来公开实体中的外键列。@JoinColumn
装饰器用于指定实体之间的关系,并且可以将外键列暴露给其他实体。
以下是在TypeORM中公开实体中外键列的步骤:
User
实体和一个Address
实体,其中Address
实体具有对User
实体的外键。// User.ts
import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from "typeorm";
import { Address } from "./Address";
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@OneToMany(() => Address, address => address.user)
addresses: Address[];
}
// Address.ts
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from "typeorm";
import { User } from "./User";
@Entity()
export class Address {
@PrimaryGeneratedColumn()
id: number;
@Column()
street: string;
@ManyToOne(() => User, user => user.addresses)
user: User;
}
在上面的代码中,User
实体具有一个addresses
属性,它是一个Address
实体的数组。Address
实体具有一个user
属性,它是一个对应的User
实体。
import { getManager } from "typeorm";
import { User } from "./User";
const getUserWithAddresses = async (userId: number) => {
const entityManager = getManager();
const user = await entityManager.findOne(User, userId, { relations: ["addresses"] });
console.log(user);
};
getUserWithAddresses(1);
在上面的代码中,我们使用findOne
方法来获取具有指定ID的用户,并通过relations
选项指定要加载的关联实体。
这样,你就可以在TypeORM中公开实体中的外键列,并且可以通过查询来获取关联的实体数据。
对于TypeORM的更多详细信息和用法,请参考腾讯云的TypeORM产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云