Hibernate Entfernen aus einer Collection soll zum Entfernen einer Beziehung führen

aze

Bekanntes Mitglied
Hi

Ich mache gerade meine ersten Schritte mit Hibernate und habe folgendes Problem:

Ich habe eine Klasse, die als Attribut eine Menge von Instanzen einer anderen Klasse besitzt:

Java:
public class User{
...

Set<CalendarEntry> calendarEntries;
....
@OneToMany(cascade = CascadeType.ALL,fetch=FetchType.EAGER)
	public Set<CalendarEntry> getCalendarEntries() {
return calendarEntries;
}

}

Wenn ich jetzt einen User erstelle wird eine Tabelle User_CalendarEntry erstellt, in der die abbildung zwischenUser und CalendarEntry korrekt dargestellt wird.

wenn ich jetzt jedoch ein Element aus der Menge calendarEntries lösche wird der entsprechende Eintrag in der Tabelle User_CalendarEntry nicht gelöscht. Wie kann ich das erreichen ?

Schöne Grüße

Arne
 
N

nillehammer

Gast
Persistierst Du denn den User danach? Ein einfaches remove auf dem Set<CalendarEntry> reicht nicht. Sorry für die doove Frage. Wenn's Dich nervt, hau mich. ;)
 

aze

Bekanntes Mitglied
Jepp, ich persistiere mit

Java:
		Session session = getHibernateSession();
		session.beginTransaction();
		session.save(user);
		session.getTransaction().commit();

Wenn ich Hibernate richtig verstehe muss danach kein Befehl mehr ausgeführt werden um Änderungen am Objekt automatisch in die Datenbank zu speichern, oder ?
 

aze

Bekanntes Mitglied
Hi

Jetzt funktioniert es. Ich hatte die Hibernate-Doku falsch verstanden und gedacht man müsste kein update() aufrufen.
 

Ähnliche Java Themen


Oben