PrimaryGeneratedColumn должен быть уникальным - PullRequest
1 голос
/ 17 марта 2020

Итак, я хотел реализовать, что когда 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 как уникальный?

...