sql >> Database teknologi >  >> RDS >> Mysql

Mapping EnumSet til mysql Set ved hjælp af JPA 2.1

Mange tak! Jeg var nødt til at bruge en lidt anden version, hvad du har her. Det, der virkede for mig, var:

Jeg havde en liste over tilladelser, der skulle justeres:

@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. enkelt Indsæt forespørgsel for at indsætte flere rækker i én kolonne

  2. Indsæt i fjerndatabasen ASIFormDataRequest:Får 400-kode, dårlig anmodning

  3. Mærkeligt problem med mysqli_stmt_bind_result

  4. Hvordan kan jeg sortere efter en tabelkolonne i forskellige tilfælde (Oracle)