No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Relaciones muchos a muchos personalizadas

25/33
Recursos

Aportes 2

Preguntas 2

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Podemos observar mejor la relaciona entre las tablas con el mapa relacion

Resumen de la clase

  • Modificamos order.entity.
 // src\users\entities\order.entity.ts
        import {
          PrimaryGeneratedColumn,
          UpdateDateColumn,
          CreateDateColumn,
          ManyToOne,
          Entity,
          OneToMany,
        } from 'typeorm';
        import { Customer } from './customer.entity';
        import { OrderItem } from './order-item.entity';

        @Entity()
        export class Order {
          @PrimaryGeneratedColumn()
          id: number;

          @CreateDateColumn({
            type: 'timestamptz',
            default: () => 'CURRENT_TIMESTAMP',
          })
          createAt: Date;

          @UpdateDateColumn({
            type: 'timestamptz',
            default: () => 'CURRENT_TIMESTAMP',
          })
          updateAt: Date;

          @ManyToOne(() => Customer, (customer) => customer.orders)
          customer: Customer;

          @OneToMany(() => OrderItem, (item) => item.order)
          items: OrderItem[];
        }
  • Agregamos la relaci贸n en customer
// src\users\entities\customer.entity.ts

        import {
          ...
          OneToMany,
        } from 'typeorm';

        import { User } from './user.entity';
        import { Order } from './order.entity';

        @Entity()
        export class Customer {
          ...
          @OneToMany(() => Order, (order) => order.customer)
          orders: Order[];
        }
  • Crear tabla ternaria order-item
import {
          PrimaryGeneratedColumn,
          UpdateDateColumn,
          CreateDateColumn,
          Entity,
          Column,
          ManyToOne,
        } from 'typeorm';

        import { Product } from '../../products/entities/product.entity';
        import { Order } from './order.entity';

        @Entity()
        export class OrderItem {
          @PrimaryGeneratedColumn()
          id: number;

          @CreateDateColumn({
            type: 'timestamptz',
            default: () => 'CURRENT_TIMESTAMP',
          })
          createAt: Date;

          @UpdateDateColumn({
            type: 'timestamptz',
            default: () => 'CURRENT_TIMESTAMP',
          })
          updateAt: Date;

          @Column({ type: 'int' }) // columna que se agrega a la relacion 
          quantity: number;

          @ManyToOne(() => Product) // en este caso no es funcional la relaci贸n bidireccional
          product: Product;

          @ManyToOne(() => Order, (order) => order.items)
          order: Order;
        }
  • Agregar las entidades en el user.module
 ...
        import { Order } from './entities/order.entity';
        import { OrderItem } from './entities/order-item.entity';

        @Module({
          imports: [
            ...
            TypeOrmModule.forFeature([User, Customer, Order, OrderItem]),
          ],
         ...
        })
        export class UsersModule {}
  • Crear y correr migration
npm run migrations:generate --orders
npm run migrations:run