Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

JPA 2.1 का उपयोग करके EnumSet को mysql सेट पर मैप करना

बहुत-बहुत धन्यवाद! मुझे आपके यहां जो कुछ है, उससे थोड़ा अलग संस्करण का उपयोग करना था। मेरे लिए जो काम किया वह था:

मेरे पास अनुमतियों की एक सूची थी जिसे समायोज्य होने की आवश्यकता थी:

@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. MySIAM पर InnoDB का उपयोग क्यों करें

  2. पीएचपी जावास्क्रिप्ट? जब उपयोगकर्ता पेज या ब्राउज़र बंद करता है तो कुछ करें

  3. MySQL में UNION प्रश्न इतने धीमे क्यों हैं?

  4. डेटाबेस में एकाधिक तालिकाओं के विरुद्ध एक ही क्वेरी को कैसे चलाएं

  5. Mysql/Mariadb . के लिए एक्टो अद्वितीय अनुक्रमणिका बनाने में विफल रहा