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ę.