G
Guest
Gast
hallo, hab hier ein kleiens hibernate problem:
bekomme eine: "a different object with the same identifier value was already associated with the session" exception:
grundlegend was ich mache:
ich lade kostenstellen daten für immer 12 monate und mehreren stellen
wenn wenniger als 12 monate vorhanden sind, werden sie angelegt
laden funktioniert
erzeugen funktionert
nur wenn er daten einer stelle laden kann und in der nächsten stelle monate anlegen muss, bekomme ich den fehler
ich bin mir nicht sicher ob ich verstehe warum der fehler auftritt, wenn ich halt ein schon vorhandens objekt speichern möchte oder? aber ich ersetlle es doch frisch "Einstellplanung p = new Einstellplanung()", die Id hab ich wie in der hibernate doku auf Long gesetzt, und ist zum Zeitpunkt des speicherns null.
hat jemand einen tip für mich?
bekomme eine: "a different object with the same identifier value was already associated with the session" exception:
grundlegend was ich mache:
ich lade kostenstellen daten für immer 12 monate und mehreren stellen
wenn wenniger als 12 monate vorhanden sind, werden sie angelegt
laden funktioniert
erzeugen funktionert
nur wenn er daten einer stelle laden kann und in der nächsten stelle monate anlegen muss, bekomme ich den fehler
Code:
//lade für jede stelle das ganze jahr und füge es den ergebniss vektor hinzu
for(int j = 0; j<stellen.size();j++){
//Planung dieser Kostenstelle
Vector planungenKtst = new Vector(12);
Stelle ktst = (Stelle) stellen.get(j);
//lade die einstellung für dieses jahr der stelle
List result = session.createQuery("from Einstellplanung e WHERE e.stelle ='"+ktst.getName()+"' AND e.jahr ="+jahr+ " ORDER BY monat").list();
//wenn weniger als 12 monate vorhanden, bei bedarf anlegen
if(result.size() < 12){
int resultPos =0;
for(int monat =1; monat <= 12; monat++){
if((resultPos > result.size()-1) ||((Einstellplanung)result.get(resultPos)).getMonat() !=monat){
Einstellplanung p = new Einstellplanung();
p.setStelle(ktst.getName());
p.setMonat(monat);
p.setJahr(2007);
//hier wirft er die exception!!!!
session.save(p);
planungenKtst.add(p);
}else{
planungenKtst.add(result.get(resultPos));
resultPos++;
}
}
}else{
planungenKtst.addAll(result);
}
}
ich bin mir nicht sicher ob ich verstehe warum der fehler auftritt, wenn ich halt ein schon vorhandens objekt speichern möchte oder? aber ich ersetlle es doch frisch "Einstellplanung p = new Einstellplanung()", die Id hab ich wie in der hibernate doku auf Long gesetzt, und ist zum Zeitpunkt des speicherns null.
hat jemand einen tip für mich?