sql >> Databasteknik >  >> RDS >> Mysql

Mapping EnumSet till mysql Set med JPA 2.1

Tack så mycket! Jag var tvungen att använda en lite annan version vad du har här. Det som fungerade för mig var:

Jag hade en uppräkning av behörigheter som behövde vara justerbara:

@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;

    }

}


  1. Mac psql/readline - Biblioteket är inte laddat

  2. Infoga radbrytning i postgresql vid uppdatering av textfält

  3. Best Practices för PostgreSQL-säkerhet

  4. Switchover/Switchback i Slony-I medan du uppgraderar PostgreSQL huvudversioner 8.4.x/9.3.x