# Hibernate 1:n und Cascade



## computersport (2. Sep 2010)

Hallo Community,

Ich erklär erstmal die Problemstellung:

Ich habe eine User-Klasse diese ist sozusagen das Zentrum der Anwendung.
Und fast alle anderen Klassen haben eine Many-to-One Association zu diese User-Klasse.

Nun hab ich das Problem das wenn ich ein UserObjekt lösche möchte ich das alle Objekte die eine
Many-to-One beziehung zu einem UserObjekt haben ebenfalls gelöscht werden.

Hier erstmal die Attribute der User-Klasse und die Entsprechenden Annotationen...


```
@Id
	@GeneratedValue
	@OneToMany(cascade = CascadeType.DELETE_ORPHAN)
	private int UserId;
	private String Nick;
	private String Mailaddy;
	private String Password;
	private Boolean Status;
	private Boolean Gesperrt;
	private float Taler;
```

Hier eine Klasse die eine Many-to-One beziehung zu der UserKlasse hat:



```
@Id
	@GeneratedValue
	private int Id;
	@ManyToOne
	private User UserId;
	@ManyToOne
	private Gueter GueterId;
	private float Kosten; 
	private int Anzahl;
```

Wie man bei den User-Attributen sehen kann habe ich "cascade = CascadeType.DELETE_ORPHAN" hingeschrieben, dass sollte eigentlich alle Objekte die eine Assoziation zu diesem Objekt haben ebenfalls löscht.... dummerweise krieg ich aber folgende Fehlermeldung:
"Type mismatch: cannot convert from CascadeType to CascadeType[]"
Ich denke mal ich soll dort ein set oder eine Liste benutzen aber wie soll ich das machen wenn ein UserObjekt zu mehr als 1 Objekt eine assoziation hat?

greetz
compi


----------



## Marcinek (2. Sep 2010)

Normalerweise würde das die Datenbank und nicht die das Mapping Tool machen oder?


----------



## Gast2 (7. Sep 2010)

Mach die Annotations an die Methoden und nicht an die Fields.
außerdem fehlen vor dem CascadeType.DELETE_ORPHAN zwei {}

cascade = {CascadeType.DELETE_ORPHAN}


----------

