meu palpite, como você não marcou o @column no id da entidade, ele está usando o nome da propriedade padrão do seu getter, que será 'id'
tente,Principal
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="principal_id")
private Long principal_id;
Função
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="role_id")
private Long role_id;