Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Memetakan EnumSet ke mysql Set menggunakan JPA 2.1

Terima kasih banyak! Saya harus menggunakan versi yang sedikit berbeda dengan yang Anda miliki di sini. Apa yang berhasil bagi saya adalah:

Saya memiliki Enum izin yang perlu disesuaikan:

@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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendapatkan banyak catatan terhadap satu catatan berdasarkan relasi?

  2. Buat satu tabel di mysql read-only

  3. Bagaimana cara mendapatkan jumlah kuantitas produk dari tanggal tertentu?

  4. File Gambar CodeIgniter tidak dapat diunggah

  5. phpMyAdmin SQL Error Kata kunci tidak dikenal di dekat BIDANG