Many-to-One в TypeOrm

210
08 сентября 2021, 09:50

Всем доброго времени суток.
На проекте используется TypeOrm.

Пытаюсь настроить отношения между таблицами (вроде все в соответствии с докой).

Мои модели:

@Entity("order")
export class OrderEntity extends BaseEntity {
    @PrimaryGeneratedColumn()
    public ID!: number;
    @Column()
    public locator: string;
    ...
    @OneToMany(() => OrderPassenger, (passenger) => passenger.order_id)
    public passengers: OrderPassenger[];

    public static TEST(id: number)
    {
        return this.createQueryBuilder("order")
            .select("order.locator")
            .leftJoinAndSelect("order.passengers", "passenger")
            .where("order.ID = :id", { id })
            .getMany();
     /* первый вариант
        return this.find({
            relations: ["passengers"],
            where: {ID: id},
        });
     */
    }
}

и еще

@Entity("order_passengers")
export class OrderPassenger extends BaseEntity {
    @PrimaryGeneratedColumn()
    public ID!: number;
    @Column()
    public name_first: string;
    ...
    @ManyToOne(() => OrderEntity, (order) => order.passengers)
    public order: OrderEntity;
}

Пытаюсь выполнить метод TEST, получаю ошибку:

TypeError: Cannot read property 'joinColumns' of undefined

Еще пробовал добавлять декоратор JoinColumn вместе с OneToMany и ManyToOne, результат тот же.

Answer 1

OrderPassenger.order - сюда точно пробовал добавлять JoinColumn?

@OneToMany(() => OrderPassenger, (passenger) => passenger.order_id) Вместо order_id, должен быть order - ORM мапается на поля класса, а не базы.

READ ALSO
Vue+PHP+render, возможно ли?

Vue+PHP+render, возможно ли?

Всех приветствую! Есть сайт, написанный на PHPУ него есть страница каталога, где настроено все SEO

192
Docker MySQL не работает

Docker MySQL не работает

Только начала пользоваться DockerНе могу понять почему не работает MySQL

269
Как подключиться к БД удаленно?

Как подключиться к БД удаленно?

У клиента есть сайт который размещен на платном хостингеКак мне подключиться к БД сайта удаленно через OS Panel? Есть все доступы к БД и к личному...

125