使用 TypeOrm、Postgresql 在 Nest 中保存新实体时出错

问题描述 投票:0回答:1

在此错误之前,我只让一个用户聊天,它起作用了。 现在,即使我尝试只输入一个用户,仍然会出现错误...

即使备份也会给我同样的错误 实体:

import {Column, Entity, JoinTable, ManyToMany, ManyToOne, OneToMany, OneToOne, PrimaryGeneratedColumn} from "typeorm";
import {User} from "./user.entity";
import {Order} from "./order.entity";

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

    @ManyToMany(() => User)
    @JoinTable()
    users: User[];

    @OneToOne(() => Order, (order) => order.chat, {nullable: true})
    order: Order
}

服务:


async createChat(userId, employeeId, orderId) {
        try {
            const candidateUser = await this.user.findOne({
                where: {
                    id: userId,
                },
            });

            const candidateEmployee = await this.user.findOne({
                where: {
                    id: employeeId,
                },
            });

            const candidateOrder = await this.order.findOne({
                where: {
                    id: orderId,
                },
            });

            if (candidateOrder && candidateUser && candidateEmployee) {
                const newChat = new Chat();
                newChat.users = [candidateEmployee];
                newChat.order = candidateOrder;

                const savedChat = await this.chat.save(newChat);

                candidateUser.currentChat = savedChat.id;
                candidateEmployee.currentChat = savedChat.id;

                await this.user.save(candidateUser);
                await this.user.save(candidateEmployee);

                candidateOrder.status = 'pending';

                await this.order.save(candidateOrder);

                return savedChat;
            } else {
                throw new Error('Не удалось создать чат.');
            }
        } catch (e) {
            throw new Error(e);
        }
    }

错误: [Nest] 25302 - 07.10.2023, 17:27:24 错误 [ExceptionsHandler] UpdateValuesMissingError:无法执行更新查询,因为未定义更新值。调用“qb.set(...)”方法来指定更新值。 错误:UpdateValuesMissingError:无法执行更新查询,因为未定义更新值。调用“qb.set(...)”方法来指定更新值。 在 ChatService.createChat (/mnt/hdd/web 项目/telegram-monolith/telegram-server/src/chat/chat.service.ts:64:19) 在 processTicksAndRejections (节点:内部/进程/task_queues:95:5) 在/mnt/hdd/web项目/telegram-monolith/telegram-server/node_modules/@nestjs/core/router/router-execution-context.js:46:28 在/mnt/hdd/web项目/telegram-monolith/telegram-server/node_modules/@nestjs/core/router/router-proxy.js:9:17

javascript typescript postgresql typeorm nest
1个回答
0
投票

您应该在

@JoinColumn
 中添加 
order

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

    @ManyToMany(() => User)
    @JoinTable()
    users: User[];

    @OneToOne(() => Order, (order) => order.chat, {nullable: true})
    @JoinColumn()
    order: Order
}
© www.soinside.com 2019 - 2024. All rights reserved.