Итак, я хотел реализовать, что когда GraphNode
удаляется, а id
из GraphNode
равно startNodeId
, тогда это будет сброшено до null
. Поэтому я придумал следующее:
График:
@Entity()
export class Graph extends BaseEntity {
@PrimaryGeneratedColumn('uuid')
public id: string;
@Column({ nullable: true })
public startNodeId?: string;
@ManyToOne(() => GraphNode, { onDelete: 'SET NULL' })
@JoinColumn({ name: 'startNodeId', referencedColumnName: 'id' })
public startNode: GraphNode;
}
GraphNode:
@Entity()
export class GraphNode extends BaseEntity {
@PrimaryGeneratedColumn('uuid')
public id: string;
@PrimaryColumn('uuid')
public graphId: string;
@ManyToOne(() => Graph)
@JoinColumn({ name: 'graphId' })
public graph: Graph;
}
Ошибка: No unique Unique-Constraint in the referenced table graphNode
Так что если я Теперь добавьте @Unique(['id'])
к GraphNode
, это работает. Но у id
уже есть декоратор PrimaryGeneratedColumn
. Необходимо ли для этого варианта использования определять id
как уникальный?