Hallo zusammen,
ich habe folgenden Code:
die Methode bekommt 2 Parameter übergeben:
1. eine Liste von Adressen
2. ein Objekt der Klasse Person(dieses Objekt habe ich per JPA-find-Methode geholt)
Die Methode soll folgendes machen:
Ich würde gerne alle Adressen aus der Liste in die eine Person hinzufügen. Davor tue ich in jede Adresse diese Person rein(ich brauche das, damit die Many-To-One-Beziehung nachher bei der Persistierung vollständig ist).
Person hat entsprechend die Variable personAdressen im Datenmodell:
Leider führt obige Methode zu ConcurrentModificationException. Ich habe gedebuggt um zu schauen, aus welcher Stelle die Exception kommt, nämlich aus der Stelle:
Ich habe daraufhin gegoogelt: viel wird gesagt, dass bei ConcurrentModificationException das Problem nämlich das Ändern von den Listenobjekten während man darauf iteriert.
Bei meiner Methode trifft dies eher nicht zu oder? Hat jemand eine Idee, wo hier das Problem ist? Vielen lieben Dank für Eure Hilfestellung.
Viele Grüße aus Rheinland,
Eure Ratna
PS. Ich bin mir sicher, die Exception kommt daher, da personAufDB.getAdressen() und list einfach auf das eine und gleiche Objekt referenzieren. Wie könnte ich aber dieses Problem umgehen?
ich habe folgenden Code:
Code:
public void fuegeAdressenhinzu(List<Adresse> list, Person personAufDB){
if (list != null && list.size() > 0){
for (Adresse value : list) {
value.setPerson(personAufDB);
}
if (personAufDB.getAdressen() == null){
personAufDB.setAdressen(new ArrayList<Adresse>());
}
personAufDB.getAdressen().addAll(list);
}
}
die Methode bekommt 2 Parameter übergeben:
1. eine Liste von Adressen
2. ein Objekt der Klasse Person(dieses Objekt habe ich per JPA-find-Methode geholt)
Die Methode soll folgendes machen:
Ich würde gerne alle Adressen aus der Liste in die eine Person hinzufügen. Davor tue ich in jede Adresse diese Person rein(ich brauche das, damit die Many-To-One-Beziehung nachher bei der Persistierung vollständig ist).
Person hat entsprechend die Variable personAdressen im Datenmodell:
Code:
public class Person{
...
private List<Adresse> personAdressen;
...
}
Leider führt obige Methode zu ConcurrentModificationException. Ich habe gedebuggt um zu schauen, aus welcher Stelle die Exception kommt, nämlich aus der Stelle:
Code:
personAufDB.getAdressen().addAll(list);
Ich habe daraufhin gegoogelt: viel wird gesagt, dass bei ConcurrentModificationException das Problem nämlich das Ändern von den Listenobjekten während man darauf iteriert.
Bei meiner Methode trifft dies eher nicht zu oder? Hat jemand eine Idee, wo hier das Problem ist? Vielen lieben Dank für Eure Hilfestellung.
Viele Grüße aus Rheinland,
Eure Ratna

PS. Ich bin mir sicher, die Exception kommt daher, da personAufDB.getAdressen() und list einfach auf das eine und gleiche Objekt referenzieren. Wie könnte ich aber dieses Problem umgehen?
Zuletzt bearbeitet: