je suppose que puisque vous n'avez pas marqué la @column dans l'id de l'entité, il prend le nom de propriété par défaut de votre getter qui sera 'id'
essayez,principal
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="principal_id")
private Long principal_id;
Rôle
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="role_id")
private Long role_id;