@Converter
public class StringSetConverter implements AttributeConverter<Set<String>, String> {
public static final String SEPARATOR = ",";
@Override
public String convertToDatabaseColumn(Set<String> set) {
if (set == null)
return null;
if (set.isEmpty())
return "";
return StringUtils.join(set.iterator(), SEPARATOR);
}
@Override
public Set<String> convertToEntityAttribute(String string) {
if (string == null)
return null;
Set<String> set = new LinkedHashSet<>();
if (StringUtils.isNotBlank(string))
set.addAll(Arrays.asList(string.split(SEPARATOR)));
return set;
}
}