Nestjs 如何更新嵌套Js多对多关系

Nestjs 如何更新嵌套Js多对多关系,nestjs,typeorm,Nestjs,Typeorm,我在两个实体之间有一种多对多的关系。一个是UserEntity,另一个是FamilyEntity。在此项目中,一个用户可以属于多个族,并且一个族可以有多个用户 家庭实体: @Entity() export class FamilyEntity { @PrimaryGeneratedColumn() id: number; @Column() familyName: string; @ManyToMany(() => UserEntity, us

我在两个实体之间有一种多对多的关系。一个是
UserEntity
,另一个是
FamilyEntity
。在此项目中,一个用户可以属于多个族,并且一个族可以有多个用户

家庭实体:

@Entity()
export class FamilyEntity {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    familyName: string;

    @ManyToMany(() => UserEntity, user => user.families,{})
    public users: UserEntity[];


}
用户实体:

@Entity()
export class UserEntity {

    @PrimaryGeneratedColumn()
    public id?: number;

    @Column()
    public name: string;

    @Column({ unique: true })
    public username: string; 

    @Column({ unique: true })
    public password: string;

    @BeforeInsert()
    emailToLowerCase() {
        this.email = this.email.toLowerCase();
    }
    @Column({ unique: true })
    public email: string;

    @Column({ type: 'enum', enum: UserRole, default: UserRole.USER })
    public role: UserRole;

    @ManyToMany(() => FamilyEntity, family => family.users, {
        cascade: true,
        eager:true
    })
    @JoinTable()
    public families: FamilyEntity[];


}
我可以毫无问题地成功地保存和更新用户和家庭,但这两个实体之间的关系让我很难过。假设我要更新用户以在字段中包含一个族,请尝试以下代码:

 async updateFamily(id: number, user:User) {
        this.familyIds = user.families;
        user.families = [];

        for (let i = 0; i < this.familyIds.length; i++) {
            this.families = await this.familyRepository.findOne(this.familyIds[i]);
            user.families.push(this.families);
        }
        return from(this.userRepository.update(id, user.families));
        

    }
async updateFamily(id:number,user:user){
this.familyId=user.families;
user.families=[];
for(设i=0;i

当我尝试执行此操作时,我得到一个错误:
ER\u BAD\u FIELD\u错误:“FIELD list”中的未知列“userEntityId”
。我已经搜索了文档,没有关于如何在nest js和类型orm上更新多对多关系的参考。请提供帮助。

此.userRepository.update
应该有一个
UserEntity
作为第二个参数

而不是
this.userRepository.update(id,user.families)

尝试:

this.userRepository.update(id,user);

this.userRepository.save(用户);

请注意,如果您没有在
user.families

中附加所有族,这将从联接表中删除记录。您能用我的答案解决这个问题吗?