typmorm 类似ef的懒加载


typmorm 类似ef的懒加载

在TypeORM中,可以通过设置关系的eager: false属性来实现类似于Entity Framework Core(EF)的懒加载功能。这意味着关联的实体将默认不会立即加载,而是在访问它们时才加载。

以下是一个简单的例子,演示如何在TypeORM中实现懒加载:

 
 
import { Entity, PrimaryGeneratedColumn, Column, OneToMany, ManyToOne, ManyToMany, JoinTable, RelationId, CreateDateColumn, UpdateDateColumn } from 'typeorm';
 
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
 
@Column()
name: string;
 
@OneToMany(() => Post, post => post.user, { eager: false }) // 懒加载
posts: Post[];
}
 
@Entity()
export class Post {
@PrimaryGeneratedColumn()
id: number;
 
@Column()
title: string;
 
@Column()
content: string;
 
@ManyToOne(() => User, user => user.posts, { eager: false }) // 懒加载
user: User;
}

在上述代码中,User实体有一个posts属性,它是Post的一个OneToMany关系。通过将eager属性设置为false,当你访问user.posts时,Posts数据才会被加载。这就是实现懒加载的方法。

要注意的是,懒加载只有在查询关联数据时才会生效。如果你在创建查询时已经加载了关联数据(例如通过join或者preload方法),则懒加载不会起作用。

posted on 2024-04-14 18:22  漫思  阅读(4)  评论(0编辑  收藏  举报

导航