node.js - 错误:无法跨一对多查询属性 TypeORM
问题描述
我已经实现了表之间的一对一和一对多关系。
主表业务
@Entity()
export class Business {
@PrimaryGeneratedColumn()
readonly id: number;
@Column({ nullable: true })
name: string;
@OneToOne(type => Review, {
nullable: true,
cascade: true,
})
@JoinColumn({ name: 'review_id' })
review: Review;
审查表
@Entity()
export class Review {
@PrimaryGeneratedColumn()
id: number;
@CreateDateColumn({ type: 'timestamptz' })
created_at: Date;
@OneToMany(type => Task, task => task.review, {
cascade: true,
nullable: true,
})
tasks: Task[];
任务表
@Entity()
export class Task {
@PrimaryGeneratedColumn()
id: number;
@Column({ nullable: true })
message: string;
@Column({ nullable: true })
category: string;
@ManyToOne(type => Review, review => review.tasks)
review: Review;
const businessRepo = connection.getRepository(Business);
const business = await businessRepo.findOne({
where: { id: id },
});
let review: Review = new Review();
review.created_at = created_at;
business.review = review
const tasks: Task[] = [];
let task: Task = new Task();
task.message = 'some message';
task.category = 'some category';
tasks.push(task);
await businessRepo.update(
business.id,
business,
);
我在更新业务对象时遇到错误。
(node:14432) UnhandledPromiseRejectionWarning: Error: Cannot query across one-to-many for property tasks
我尝试通过尝试将级联设为假来尝试解决方法,但徒劳无功。我不想用单个语句进行级联更新,因为我在更新任务时有很多自定义,所以我单独处理任务更新。
你知道我该如何解决这个问题吗?
解决方案
尝试使用/添加,关系:[“entity_related”]与find方法
推荐阅读
- excel - 如何将参数值从 sub 传递到 excel VBA shell 命令以进行远程执行?
- c++ - 在 C++ 中分配大小为 10000 10000 3 的 3 维向量
- c# - .Net 4.7.1 MVC5 应用程序未加载正确的程序集版本
- r - 如何在 R 中提取由正斜杠分隔的数字?
- java - 如何在 Eclipse Tomcat 中调试状态码 500?
- scala - 需要获取电子邮件正文中的值
- javascript - 编译/运行时后的 Vue.js 动态图像路径
- c# - 使用 c#/WinForms 将数据绑定到重复用户控件中的控件
- c# - 'Derived' 定义 operator == 或 operator != 但不覆盖 Object.Equals(object o)
- azure - 如何让 Azure 应用服务在静态站点上添加自定义 HTTP 响应标头?