Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Envers + MYSQL + List =SQLSyntaxErrorException:Określony klucz był za długi;

Zapomniałem wspomnieć, że używam @Access(AccessType.PROPERTY) na poziomie klasy. W każdym razie rozszerzyłem powiązane metody pobierania

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

W ten sposób faktycznie załatwia sprawę. Aby jednak nie stracić informacji, rozszerzyłem również wszystkie metody dodawania elementu do listy, tak jak w tym przypadku

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

Teraz wszystkie tabele są tworzone. Niestety mam teraz problem z NullPointer, który znajdziesz tutaj Envers NullPointerException podczas tworzenia danych testowych - na wypadek, gdybyś przechodził tę samą krzywą uczenia się.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wydajność zapytań w dwóch bazach mysql na tym samym serwerze?

  2. Wysyłaj dane z Androida na serwer przez JSON

  3. Konwertowanie ciągu znaków na format znacznika czasu MySQL w php

  4. Jak sprawić, by Silverlight pobrał swoje dane z MySQL?

  5. Nie znaleziono odpowiedniego sterownika dla netbeans jdbc:mysql, *.jar dołączyć do biblioteki