Meine Vermutung, da Sie die @column in der ID der Entität nicht markiert haben, nimmt sie den Standard-Eigenschaftsnamen Ihres Getters, der "id" sein wird
versuchen, Direktor
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="principal_id")
private Long principal_id;
Rolle
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="role_id")
private Long role_id;