【发布时间】:2020-07-01 16:48:05
【问题描述】:
我必须在我的服务中创建一个函数来更新我在数据库中的数据,但我必须更新两个不同实体中的数据,因为我在 UserEntity 和 DetailsEntity 之间有 @OneToOne 关系,这是我的实体:
用户实体
@Entity()
export class User {
@PrimaryGeneratedColumn()
id!: number;
//more an more...
@OneToOne(
() => Details,
details=> details.user
)
details: Details;
}
详细信息实体
@Entity()
export class Details{
@PrimaryGeneratedColumn()
id!: number;
@Column()
userId: number;
@OneToOne(() => User, {
nullable: false,
onUpdate: 'CASCADE',
})
@JoinColumn({
name: 'userId',
})
user: User;
//more and more...
}
那么,我怎样才能只在一个服务/控制器中更新这两个实体(带有可选字段)?
我的 dto 是什么样的?
/////////////////////
【问题讨论】:
-
正在更新哪个资源?你打电话给
/user还是/detail?我知道这些是 OnToOne,但 如何 他们是相关的?用户到细节有什么特别之处?或者它实际上是对用户的详细信息?没有足够的说法应该是什么样子。另外,一个小时前你也有同样的问题。保持原来的问题。否则删除问题并重新提出问题没有任何好处。 -
@JayMcDoniel:我必须使用具有
userId字段的Detail实体 -
你必须什么?更新详细信息?是否也需要更新用户?有太多的未知数,我无法理解你想要做什么。
-
是的,我必须只使用一项服务更新这两个实体,因为我必须只向服务器发送一个响应,该响应必须包含这两个实体的数据
-
好的,但您还没有理解为什么两者都需要更新?您正在发送
Detail,对吗?那么为什么要担心User?您提供的内容没有意义
标签: javascript node.js typescript nestjs typeorm