From 1c511b738571b38125679211cdc208dec82430c9 Mon Sep 17 00:00:00 2001 From: sezanzeb <28510156+sezanzeb@users.noreply.github.com> Date: Thu, 16 Apr 2026 00:38:30 +0200 Subject: [PATCH 1/2] add onDelete to entities --- backend/src/entities/answer.ts | 4 ++-- backend/src/entities/rating.ts | 6 +++--- backend/src/entities/team.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/src/entities/answer.ts b/backend/src/entities/answer.ts index 87c39ec2..bbc7de15 100644 --- a/backend/src/entities/answer.ts +++ b/backend/src/entities/answer.ts @@ -6,9 +6,9 @@ import { User } from "./user"; export class Answer { @PrimaryGeneratedColumn() public readonly id!: number; - @ManyToOne(() => User, { eager: true }) + @ManyToOne(() => User, { eager: true, onDelete: "CASCADE" }) public user!: User; - @ManyToOne(() => Question, { eager: true }) + @ManyToOne(() => Question, { eager: true, onDelete: "CASCADE" }) public question!: Question; @Column({ length: 1024 }) public value!: string; diff --git a/backend/src/entities/rating.ts b/backend/src/entities/rating.ts index a6515d2b..f5c56b30 100644 --- a/backend/src/entities/rating.ts +++ b/backend/src/entities/rating.ts @@ -14,11 +14,11 @@ import { User } from "./user"; export class Rating { @PrimaryGeneratedColumn() public readonly id!: number; - @ManyToOne(() => User, { eager: true }) + @ManyToOne(() => User, { eager: true, onDelete: "CASCADE" }) public user!: User; - @ManyToOne(() => Project, { eager: true }) + @ManyToOne(() => Project, { eager: true, onDelete: "CASCADE" }) public project!: Project; - @ManyToOne(() => Criterion, { eager: true }) + @ManyToOne(() => Criterion, { eager: true, onDelete: "CASCADE" }) public criterion!: Criterion; @Column() // 1 - 5 diff --git a/backend/src/entities/team.ts b/backend/src/entities/team.ts index d2e0fcda..ff4228c2 100644 --- a/backend/src/entities/team.ts +++ b/backend/src/entities/team.ts @@ -24,7 +24,7 @@ export class Team { // Beware that this is not eagerly loaded, because it will throw recursion depth // errors due to user.team being eagerly loaded already. Add it to "relations" // when doing database queries instead. - @OneToOne(() => User) + @OneToOne(() => User, { onDelete: "SET NULL" }) @JoinColumn() public owner!: User; @OneToMany(() => User, (user) => user.teamRequest) From d8424599e4fbf18fb231a526c0e349034025f896 Mon Sep 17 00:00:00 2001 From: sezanzeb <28510156+sezanzeb@users.noreply.github.com> Date: Thu, 16 Apr 2026 00:42:33 +0200 Subject: [PATCH 2/2] keep rating if user is deleted --- backend/src/entities/rating.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/entities/rating.ts b/backend/src/entities/rating.ts index f5c56b30..355db666 100644 --- a/backend/src/entities/rating.ts +++ b/backend/src/entities/rating.ts @@ -14,7 +14,7 @@ import { User } from "./user"; export class Rating { @PrimaryGeneratedColumn() public readonly id!: number; - @ManyToOne(() => User, { eager: true, onDelete: "CASCADE" }) + @ManyToOne(() => User, { eager: true, onDelete: "SET NULL" }) public user!: User; @ManyToOne(() => Project, { eager: true, onDelete: "CASCADE" }) public project!: Project;