@ka-terok

Отношения в nestjs. Как сохранить сущность?

Только начинаю работать с nest. Создаю сущности

@Entity()
export class Order {
  @PrimaryGeneratedColumn("uuid")
  id: string;

  @Column()
  title: string;

  @ManyToOne(type => Client)
  @JoinColumn()
  client: Client;

  @Column()
  price: number;

  @Column()
  date_start: Date;

  @Column()
  date_end: Date;

  @Column()
  comment: string;

  @Column()
  status: string;
}

export class Client {
  @PrimaryGeneratedColumn("uuid")
  id: string;

  @Column()
  name: string;

  @OneToMany(type => Order, order => order.client)
  orders: Order[];

  @Column()
  phone: number;

  @Column()
  comment: string;
}

async create(createOrder): Promise<Order> {
    return this.orderRepository.save(createOrder);
  }


P.s метод save - так как метод create не сохраняет данные в базу

export class CreateOrder {
  readonly title: string;
  readonly clientId: string;
  readonly price: number;
  readonly date_start: Date;
  readonly date_end: Date;
  readonly comment: string;
  readonly status: string;
}


где
createOrder {
    "title": "Название",
    "clientId": "2ed88999-ca3d-4976-bf3d-9ce1d74b7d63",
    "price": "200",
    "date_start": "2022-12-11",
    "date_end": "2022-12-12",
    "comment": "Комментарий",
    "status": "new"
    }


Таблицы в mysql создались со связями в order есть колонка clientId. Но при создании order, поле clientId игнорируется.
При работе в экспресс было достаточно указать clientId в составе ордера.
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
@ka-terok Автор вопроса
Записалось, когда изменила данные

createOrder {
    "title": "Название",
    "client": "2ed88999-ca3d-4976-bf3d-9ce1d74b7d63",
    "price": "200",
    "date_start": "2022-12-11",
    "date_end": "2022-12-12",
    "comment": "Комментарий",
    "status": "new"
    }

@Entity()
export class Client {
  @PrimaryGeneratedColumn("uuid")
  id: string;

  @Column()
  name: string;

   @OneToMany(type => Order, order => order.client)
  orders: Order[];

  @Column()
  phone: number;

  @Column()
  comment: string;
}

@Entity()
export class Order {
  @PrimaryGeneratedColumn("uuid")
  id: string;

  @Column()
  title: string;

  @ManyToOne(type => Client)
  @JoinColumn()
  client: Client;

  @Column()
  price: number;

  @Column()
  date_start: Date;

  @Column()
  date_end: Date;

  @Column()
  comment: string;

  @Column()
  status: string;
}


А получения списка с отношениями  

async getAll(): Promise<Order[]> {
        return this.orderRepository.find({
            relations: ["client"]
        });
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы