You can create a relationship on a column other than the primary key using TypeORM. Here’s an example

export class ExternalCommentEntity {
  @Index({ unique: true }) // ⚠️ Referenced column must have a unique constraint
  @Column({ nullable: true })
  externalId?: string;

  @Column({ nullable: true })
  @RelationId((event: ExternalCommentEntity) => event.parent)
  parentExternalId?: string | undefined;

  @ManyToOne(() => ExternalCommentEntity)
    referencedColumnName: "externalId", // ℹ️ Specify the name of your other unique column
  parent?: ExternalCommentEntity;