sql >> Database teknologi >  >> RDS >> Mysql

Envers + MYSQL + List =SQLSyntaxErrorException:Den angivne nøgle var for lang;

Jeg glemte at nævne, at jeg bruger @Access(AccessType.PROPERTY) på klassetrin. I hvert fald udvidede jeg de relaterede getter-metoder

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

Det gør faktisk tricket. Men for ikke at miste information, udvidede jeg også alle metoder til at tilføje et element til listen, som sådan

// 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 er alle tabeller oprettet. Desværre har jeg nu et NullPointer-problem, som du finder her Envers NullPointerException ved oprettelse af testdata - bare hvis du gennemgår den samme indlæringskurve.




  1. Hvordan formateres intervaltype til TT:MM-format?

  2. Php tidsformat

  3. jsp viser tilfældigt antal rækker fra databasen

  4. Sådan starter parallelle planer op – del 1