supongo, dado que no ha marcado @column en la identificación de la entidad, está tomando el nombre de propiedad predeterminado de su captador, que será 'id'
prueba, Director
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="principal_id")
private Long principal_id;
Rol
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="role_id")
private Long role_id;