Merci beaucoup! J'ai dû utiliser une version légèrement différente de celle que vous avez ici. Ce qui a fonctionné pour moi était :
J'avais une énumération d'autorisations qui devait être ajustable :
@Convert(converter = SetConverter.class)
@Column(name = "permission")
private EnumSet<Permission> permission;
//in a util and imported
...
@Converter
public static class SetConverter implements AttributeConverter<EnumSet<Permission>, String> {
public String convertToDatabaseColumn(EnumSet<Permission> attribute) {
StringBuilder sb = new StringBuilder();
for (Permission c : attribute) {
sb.append(c + ",");
}
return sb.toString();
}
public EnumSet<Permission> convertToEntityAttribute(String dbData) {
if (dbData == null) {
dbData = "";
}
EnumSet<Permission> perm = EnumSet.of(Permission.DEFAULT); //default was a value I added.
String[] persistencePermissions = StringUtils.trimAllWhitespace(dbData).toUpperCase().split(",");
if (!StringUtils.isEmpty(StringUtils.trimAllWhitespace(dbData))) {
try {
for (String str : persistencePermissions) {
perm.add(Permission.valueOf(str));
}}
catch (IllegalArgumentException IAE) {
throw new Exception("INVALID_REQUEST");
}}
return perm;
}
}