Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ánh xạ EnumSet sang mysql Set sử dụng JPA 2.1

Cảm ơn rất nhiều! Tôi đã phải sử dụng một phiên bản hơi khác những gì bạn có ở đây. Điều làm việc cho tôi là:

Tôi có nhiều quyền cần được điều chỉnh:

@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. lỗi hoặc lỗi khóa mysql?

  2. Sử dụng UNION và ORDER BY không chính xác?

  3. Sắp xếp thứ tự - sử dụng dấu thời gian UNIX cho các trường DATE

  4. Câu lệnh chèn PDO với vòng lặp qua mảng $ _POST

  5. Nhận ngày ngay cả khi nó không tồn tại trong bảng từ câu lệnh SQL SELECT