нижеописанный способ работает для меня, и я считаю, что он соответствует вашим требованиям; приведенный ниже код входит в роль сущности, и вам не нужно определять разрешения для сущности. Но имейте в виду, что столбец, который вы хотите использовать в качестве ключа карты, должен иметь уникальное ограничение, определенное в таблице, как здесь у вас должны быть значения sname, уникальные в таблице разрешений
@ElementCollection
@CollectionTable(name="permissions",joinColumns= @JoinColumn(name="role_id",referencedColumnName="role_id")})
@MapKeyColumn(name="sname")
@Column(name="bcanmodify")
private Map<String,Boolean> permissions;