一对一的关系是未定义的类型

发布于 2025-02-08 19:29:34 字数 2184 浏览 3 评论 0原文

我正在尝试使用Beetenw两个表的关系,但是当我创建对象时,它说我没有关系专家,因此只有专有权的对象“ Todelete” HA: { createt_at。 更新_at, ID, time_spent, } 和缺少的专有人 { 用户身份, VALATANCE_NEED_ID }

这是我的代码:

我正在尝试不同的方法来恢复所需的信息。

    const toDelete = await this.maintenanceDoneRepository.findOne(id);

    // const toDelete =await getConnection().createQueryBuilder()
    //     .select("md.maintenance_need_id")
    //     .from(MaintenanceDone, "md")
    //     .where("md.id = :id" ,{id : id})
    //     .getOne();
    
    await getConnection().createQueryBuilder()
        .update(MaintenanceNeed)
        .where("id = :id" ,{ id : toDelete})
        .set({
            is_to_do : true
        })
        .execute();

这是两者的实体:

@Entity()
export class MaintenanceNeed extends BaseEntity{
    @PrimaryGeneratedColumn({type: 'bigint'})
    id: number;

    @OneToOne(() => Ticket, ticket => ticket.maintenanceNeed, {
        cascade : true
    })
    @JoinColumn({name: 'ticket_id'})
    ticket : Ticket;

    @ManyToOne(()=> House, house => house.maintenanceNeed)
    @JoinColumn({name: 'house_id'})
    house: House;

    @ManyToOne(()=> MaintenanceNeedTemplate, maintenanceNeedTemplate => maintenanceNeedTemplate.maintenanceNeed)
    @JoinColumn({name: 'template_id'})
    maintenanceNeedTemplate : MaintenanceNeedTemplate;

    @OneToOne(()=> MaintenanceDone, maintenanceDone => maintenanceDone.maintenanceNeed)
    maintenanceDone: MaintenanceDone;

    @Column({type: 'boolean', default: true})
    is_to_do: boolean;

}

另一方面:

@Entity()
export class MaintenanceDone extends BaseEntity{
   
    @PrimaryGeneratedColumn({type: 'bigint'})
    id: number;

    @ManyToOne(()=> User, user => user.maintenanceDone, {
        onDelete: 'SET NULL'
    })
    @JoinColumn({name: "user_id"})    
    user_id : User;

    @OneToOne(()=> MaintenanceNeed, maintenanceNeed => maintenanceNeed.maintenanceDone)
    @JoinColumn({name: 'maintenance_need_id'})
    maintenanceNeed: MaintenanceNeed;

    @Column({type: "bigint"})
    time_spent: number;
}

其他代码的其余部分非常有效,并且DB使用列Rigth正确。

感谢您的任何遮阳篷!

I'm tryng to use a relations beetenw two tables, but when I create the object it says me I don't have the relations proprieties, so the object "toDelete" ha from proprieties only:
{
createt_at.
updated_at,
id,
time_spent,
}
and missing proprieties
{
user_id,
maintance_need_id
}

This is my code:

I'm tryng to different ways to recive the info I need.

    const toDelete = await this.maintenanceDoneRepository.findOne(id);

    // const toDelete =await getConnection().createQueryBuilder()
    //     .select("md.maintenance_need_id")
    //     .from(MaintenanceDone, "md")
    //     .where("md.id = :id" ,{id : id})
    //     .getOne();
    
    await getConnection().createQueryBuilder()
        .update(MaintenanceNeed)
        .where("id = :id" ,{ id : toDelete})
        .set({
            is_to_do : true
        })
        .execute();

This is the Entity of both:

@Entity()
export class MaintenanceNeed extends BaseEntity{
    @PrimaryGeneratedColumn({type: 'bigint'})
    id: number;

    @OneToOne(() => Ticket, ticket => ticket.maintenanceNeed, {
        cascade : true
    })
    @JoinColumn({name: 'ticket_id'})
    ticket : Ticket;

    @ManyToOne(()=> House, house => house.maintenanceNeed)
    @JoinColumn({name: 'house_id'})
    house: House;

    @ManyToOne(()=> MaintenanceNeedTemplate, maintenanceNeedTemplate => maintenanceNeedTemplate.maintenanceNeed)
    @JoinColumn({name: 'template_id'})
    maintenanceNeedTemplate : MaintenanceNeedTemplate;

    @OneToOne(()=> MaintenanceDone, maintenanceDone => maintenanceDone.maintenanceNeed)
    maintenanceDone: MaintenanceDone;

    @Column({type: 'boolean', default: true})
    is_to_do: boolean;

}

and the other:

@Entity()
export class MaintenanceDone extends BaseEntity{
   
    @PrimaryGeneratedColumn({type: 'bigint'})
    id: number;

    @ManyToOne(()=> User, user => user.maintenanceDone, {
        onDelete: 'SET NULL'
    })
    @JoinColumn({name: "user_id"})    
    user_id : User;

    @OneToOne(()=> MaintenanceNeed, maintenanceNeed => maintenanceNeed.maintenanceDone)
    @JoinColumn({name: 'maintenance_need_id'})
    maintenanceNeed: MaintenanceNeed;

    @Column({type: "bigint"})
    time_spent: number;
}

Ther rest of the code works really well, and the DB is correct with the columns rigth.

Thanks for any awnser!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初与友歌 2025-02-15 19:29:34

我解决了添加此行.leftJoinandSelect(“ Md.Maintenanceneed”,“ Varanceneed”)的问题。
发表评论的部分。

我希望能帮助某人。

I solved the problem adding this line .leftJoinAndSelect("md.maintenanceNeed", "maintanceNeed")
to the commentented part.

I hope will help someone.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文