РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsPmRnIS 161 of 168 menu
◀ ▶

Обратная связь в Nest

Пусть из записи уже виден сосед, а из соседа нельзя получить список его материалов. Одной стрелки «многие к одному» для навигации в обе стороны недостаточно.

На стороне «одного» заводят поле-массив с пометкой OneToMany. Второй аргумент у обеих пометок - функция, которая из соседа возвращает противоположное поле. Так TypeORM понимает, что author и posts - две половины одной связи.

Покажем на примере поста и автора:

import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { Post } from './post.entity.js'; @Entity() export class Author { @PrimaryGeneratedColumn() id: number; @Column() name: string; @OneToMany(() => Post, (post) => post.author) posts: Post[]; }

На материале уточним обратную сторону вторым аргументом:

import { Column, Entity, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; import { Author } from './author.entity.js'; @Entity() export class Post { @PrimaryGeneratedColumn() id: number; @Column() title: string; @ManyToOne(() => Author, (author) => author.posts) author: Author; }

Обе сущности по-прежнему передают в forFeature модуля темы:

import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Author } from '../author.entity.js'; import { Post } from '../post.entity.js'; @Module({ imports: [TypeOrmModule.forFeature([Post, Author])], }) export class PostsModule {}

Корень подключает канал к базе и модуль постов:

import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { PostsModule } from './posts/posts.module.js'; @Module({ imports: [ TypeOrmModule.forRoot({ type: 'postgres', host: 'localhost', port: 5432, username: 'postgres', password: 'postgres', database: 'site', autoLoadEntities: true, synchronize: true, }), PostsModule, ], }) export class AppModule {}

Добавьте обратную сторону между Worker и Department со стрелками в обе стороны, зарегистрируйте сущности в WorkersModule и подключите модуль к корню с созданием таблиц при старте.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить