Hallo
Ich habe folgendes Problem bei dem Cascade:
und wenn ich nun einen Testlauf mit einer noch leeren DB mache (befülle diese auch mit Werten). Das erstellen der Tabellen funktioniert auch. Ich bekomme eine Fehlermeldung beim erstellen der Testdaten
und das soll an dieser Stelle sein
und dort an der Stelle
Wo liegt dort das genaue Problem? Vielleicht weiß jemand eine Antwort denn ich bin schon seid Stunden beim suchen.
PS: lasse ich das Cascade an der Stelle weg, wird die DB erstellt aber ich bekomme ein Problem bei löschen da die Sparte mit drin hängt ;-) also ein ???:L
Ich habe folgendes Problem bei dem Cascade:
Code:
@ManyToMany(targetEntity=Sparten.class)
@Cascade({org.hibernate.annotations.CascadeType.ALL})
@JoinTable(name = "spartenmapping",
joinColumns = @JoinColumn(name = "bonuspositionsID"),
inverseJoinColumns = @JoinColumn(name = "spartenID"))
public List<Sparten> getSparten() {
return sparten;
}
und wenn ich nun einen Testlauf mit einer noch leeren DB mache (befülle diese auch mit Werten). Das erstellen der Tabellen funktioniert auch. Ich bekomme eine Fehlermeldung beim erstellen der Testdaten
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [de.leuphana.edding.model.Sparten#1]
und das soll an dieser Stelle sein
Code:
public static Session getSession() {
Session s = (Session) session.get();
if (s == null) {
s = sessionFactory.openSession();
session.set(s);
}
return s;
}
public static boolean saveOrUpdateObject(Object obj){
Session s = null;
try {
s = HibernateUtil.getSession();
s.beginTransaction();
s.saveOrUpdate(obj);
s.flush();
s.getTransaction().commit();
} catch (Exception e) {
s.getTransaction().rollback();
e.printStackTrace();
return false;
}
return true;
}
und dort an der Stelle
Code:
s.saveOrUpdate(obj);
Wo liegt dort das genaue Problem? Vielleicht weiß jemand eine Antwort denn ich bin schon seid Stunden beim suchen.
PS: lasse ich das Cascade an der Stelle weg, wird die DB erstellt aber ich bekomme ein Problem bei löschen da die Sparte mit drin hängt ;-) also ein ???:L