sql >> Databasteknik >  >> RDS >> Mysql

Envers + MYSQL + List =SQLSyntaxErrorException:Den angivna nyckeln var för lång;

Jag glömde nämna att jag använder @Access(AccessType.PROPERTY) på klassnivå. Hur som helst, jag utökade de relaterade gettermetoderna

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

Det gör faktiskt susen. Men för att inte tappa information har jag också utökat alla metoder för att lägga till ett element i listan, som så

// 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);
}

Nu är alla tabeller skapade. Tyvärr har jag nu ett NullPointer-problem, som du hittar här Envers NullPointerException när du skapar testdata - ifall du går igenom samma inlärningskurva.




  1. Hur får man antalet element i en JSON-array lagrad som CLOB med Oracle 12c?

  2. Infoga matrisvärden i databasen i laravel

  3. Finns det en mekanism för att inaktivera infogning i tabellen?

  4. Hur man använder Perl för att ändra ett mysql-lösenord