私の推測では、エンティティのIDに@columnをマークしていないため、ゲッターのデフォルトのプロパティ名が「id」になります
。試してみてください、プリンシパル
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="principal_id")
private Long principal_id;
役割
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
Column(name="role_id")
private Long role_id;