# [Hibernate] Die Liste einer Verknüpfung selber setzen



## sparrow (24. Feb 2008)

Hallo Forum,

in einem Programm gehe ich so vor, dass ich ein Objekt auf dem Client erstelle, dann zum Server schicke und es dort erst mit einer Session in Verbindung bringen kann.

Normalerweise ist das kein Problem.

Bei Objekten mit ganz normalen "Feldern" funktioniert das ganze wunderbar. Ich habe also eine Klasse "User" die mit den entsprechenden Mapping-Annotations ausgestattet ist und auf dem Client erstellt wird. Die Klasse schick ich dann mit RMI zum Sever, binde die Klasse in eine Session und führe ein "session.saveOrUpdate(User user)" aus.

Nun möchte ich aber, dass jeder Benutzer auch Mitglied in Gruppen sein kann, dafür befindet sich in der Klasse User folgende Methode:
	
	
	
	





```
/**
	 * Returns a List with all Groups of the user
	 * @return a List with all Groups of the user
	 */
	@ManyToMany(fetch = FetchType.EAGER)
	public List<Group> getGroups() {
		return groups;
	}
```

So, nun möchte ich auch auf dem Client schon die Gruppen einfügen können.
Wenn das ganze nur auf dem Server laufen würde würde man ja mit User.getGroups().add(Group g) tun. Dummerweise kommt, trotz FetchType.EAGER aber auf dem Client kein Obejekt an wenn die Liste leer ist.
Sprich User.getGroups().add(Group g) geht nicht weil User.getGroup() NULL liefert.

Also hab ich mir gedacht, stell ich auf dem Client halt eine Liste zusammen und übergeb die mit User.setGroups(List<Group>). Klappt aber nicht, sobald User dann auf dem Server gespeichert werden soll kommt folgender Fehler: Unknown entity: java.util.ArrayList


Hat jemand eine Idee wie ich die Gruppen in den User bekomme?

Gruß
Sparrow


----------



## sparrow (24. Feb 2008)

Hat sich erledigt.

Ich lasse in "User" einfach eine ArrayList von Start an initialisieren.
Das scheint zu gehen.


Gruß
Sparrow


----------



## Guest (24. Feb 2008)

sparrow hat gesagt.:
			
		

> Ich lasse in "User" einfach eine ArrayList von Start an initialisieren.
> Das scheint zu gehen.


So ist es auch korrekt. Ersetze auch nie die Collections, da sie von Hibernate "verwaltet" werden.
z.B.
	
	
	
	





```
public void setGroups(List<Group> groups) { 
   this.groups = groups; // Bad idea!
}

public void setGroups(List<Group> groups) { 
   this.groups.clear();
   if( groups != null )
   {
      this.groups.addAll(groups);
   }
}
```


----------

