domyślam się, że ponieważ nie zaznaczyłeś @kolumny w id encji, przyjmuje domyślną nazwę właściwości twojego pobierającego, która będzie 'id'
spróbuj,Zleceniodawca
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="principal_id")
private Long principal_id;
Rola
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="role_id")
private Long role_id;