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

Envers + MYSQL + List =SQLSyntaxErrorException:निर्दिष्ट कुंजी बहुत लंबी थी;

मैं यह बताना भूल गया कि मैं @Access(AccessType.PROPERTY) का उपयोग कर रहा हूं कक्षा स्तर पर। वैसे भी, मैंने संबंधित गेट्टर विधियों को बढ़ाया है

@ElementCollection  
@Column(length=175)     // keep in sync with maxDBStringLength
public List<String> getEnvironmentalInterfaces() {
    return environmentalInterfaces;
}

इस प्रकार वास्तव में चाल है। हालाँकि, जानकारी को ढीला न करने के लिए, मैंने सूची में एक तत्व जोड़ने के लिए सभी विधियों को भी बढ़ाया, जैसे कि

// Must be in sync with @Column(length=175)  definitions
protected static int maxDBStringLength = Constants.maxDBStringLength;

public void addEnvironmentalInterfaces(String environmentalInterface) throws StringTooLongException {
    if(environmentalInterface.length() > maxDBStringLength) {
        throw new StringTooLongException(maxDBStringLength, environmentalInterface.length());
    }
    environmentalInterfaces.add(environmentalInterface);
}

अब सभी टेबल बन गए हैं। दुर्भाग्य से मेरे पास अब एक NullPointer समस्या है, जो आपको यहां एनवर्स परीक्षण डेटा बनाते समय NullPointerException - बस अगर आप उसी सीखने की अवस्था से गुजर रहे हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पंक्तियों को सूचीबद्ध करने वाली तालिका में शामिल हों क्योंकि स्तंभ किसी अन्य तालिका में शामिल हो गए हैं?

  2. PHP में MySQL कॉलम का योग प्राप्त करें

  3. MySQL Auto Increment Custom Values

  4. SQLAlchemy का उपयोग करके दो डेटाबेस में तालिकाओं में शामिल हों

  5. Laravel - शामिल होने और समवर्ती के साथ क्वेरीबिल्डर