我是 NestJs 和 TypeOrm 的新手。
我的数据库是Mysql2.
这是 planOrder.entity
// planOrder.entity
import { Media } from 'src/media/media.entity';
import { Entity, PrimaryGeneratedColumn, ManyToOne, OneToOne, CreateDateColumn, UpdateDateColumn } from 'typeorm';
import { Plan } from './plan.entity';
import { Transaction } from 'src/transaction/entities/transaction.entity';
@Entity()
export class PlanOrder {
@PrimaryGeneratedColumn()
id: number;
@ManyToOne(() => Media, (media) => media.id)
media: Media;
@ManyToOne(() => Plan, (plan) => plan.id)
plan: Plan
@OneToOne(() => Transaction, (transaction) => transaction.id)
transaction: Transaction
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}
当我想像这样创建新的计划订单时:
// planOrderService.ts
async create(body: CreatePlanOrderDto, userId: number) {
// creating transaction is done successfully
const transaction = await this.transactionService.create({
amount: body.amount,
description: body.description,
paymentDate: body.paymentDate,
refrenceNumber: body.refrenceNumber,
userId
})
const planOrder = this.planOrderRepository.create()
planOrder.transaction = transaction // if I remove this line it would be saved without any errors
try {
// error happens here
this.planOrderRepository.save(planOrder)
} catch (error) {
console.log('e', error)
}
}
首先我创建一个交易。
然后我将该交易添加到 orderPlan 实体
然后我保存它。
但无法保存
我收到一个错误
/home/morteza/Desktop/simple-vedica-back/src/query-builder/UpdateQueryBuilder.ts:681 抛出新的 UpdateValuesMissingError() ^ UpdateValuesMissingError:无法执行更新查询,因为未定义更新值。调用“qb.set(...)”方法 指定更新的值。 在 UpdateQueryBuilder.createUpdateExpression (/home/morteza/Desktop/simple-vedica-back/src/query-builder/UpdateQueryBuilder.ts:681:19) 在 UpdateQueryBuilder.getQuery (/home/morteza/Desktop/simple-vedica-back/src/query-builder/UpdateQueryBuilder.ts:53:21) 在 UpdateQueryBuilder.getQueryAndParameters (/home/morteza/Desktop/simple-vedica-back/src/query-builder/QueryBuilder.ts:495:28) 在 UpdateQueryBuilder.execute (/home/morteza/Desktop/simple-vedica-back/src/query-builder/UpdateQueryBuilder.ts:142:50) 在 updateSubject (/home/morteza/Desktop/simple-vedica-back/src/persistence/SubjectExecutor.ts:618:63) 在Array.map() 在SubjectExecutor.executeUpdateOperations (/home/morteza/Desktop/simple-vedica-back/src/persistence/SubjectExecutor.ts:670:34) 在SubjectExecutor.execute(/home/morteza/Desktop/simple-vedica-back/src/persistence/SubjectExecutor.ts:148:20) 在 processTicksAndRejections (节点:内部/进程/task_queues:95:5) 在 EntityPersistExecutor.execute (/home/morteza/Desktop/simple-vedica-back/src/persistence/EntityPersistExecutor.ts:182:21)