java.util.ConcurrentModificationException für CollectionOfElements

8

Ich erhalte anscheinend eine ConcurrentModificationException, wenn ich ein CollectionOfElements in einem Embedabble habe.

Wenn ich es so haben möchte, wenn ich die Route von Embedabbles zu Entity ändere, dann funktioniert alles gut. Ich habe sogar versucht, @Version hinzuzufügen, aber das scheint nicht zu funktionieren.

Hier ist ein Auszug meiner Klassen. Kart.java:

%Vor%

Route.java:

%Vor%

Koordinaten.java:

%Vor%

Ich habe Hashcode / equals für Koordinaten und Route generiert

    
Shervin Asgari 19.10.2009, 15:34
quelle

3 Antworten

9

Überprüfen Sie diesen JIRA-Eintrag.

ConcurrentModificationException, wenn die Sammlung von embeddable eine Sammlung enthält

Es ist ein bekannter Fehler in der Annotationsmappe. Und das Problem liegt in Hibernate Core, die Sammlungen in Sammlungen von eingebetteten nicht unterstützt.

    
jitter 19.10.2009, 15:48
quelle
3

Ich kann Ihnen keinen Hibernate-spezifischen Hinweis geben - aber ConcurrentModificationExceptions bedeuten oft, dass eine Sammlung innerhalb ihres Iterators geändert wird, wie zB

%Vor%

Normalerweise können Sie dies vermeiden, indem Sie explizit einen Iterator erstellen und seine remove () -Methode statt der Collection aufrufen - aber wenn dies interner Hibernate-Code ist, haben Sie diese Option nicht.

>     
Andrzej Doyle 19.10.2009 15:45
quelle
0

Die Verwendung von "@CollectionOfElements" und "@Embeddable" ist verwirrend. Ich nehme an, Sie möchten, dass Route und Koordinaten getrennte Tabellen sind? Wenn ja, sollten sie wirklich nicht @ Embeddable sein. @Embeddable repräsentiert etwas, das in die Elterntabelle eingebettet werden kann. Um beispielsweise zusammengesetzte Schlüssel zu verwenden, verwenden Sie normalerweise eine @EmbeddedId als PK, die auf eine Klasse verweist, die @Embeddable ist.

Da Sie erwähnen, dass der Wechsel zu Entity das Problem zu beheben scheint, sollten Sie Route und Coordinate auf separate Entitäten umstellen. Dann haben Sie ein viel mehr Standard-Modell-Setup, das Ihr Problem beheben sollte.

    
Malaxeur 19.10.2009 15:47
quelle

Tags und Links