Folgendes Szenario bestehen:JPA nicht Kinder
Ich habe
Benutzerobjekt:
...
@Column(name = "TITLE")
private String title;
@NotNull
@NotEmpty
@Column(name = "STREET_ADRESS")
private String streetAdress;
@NotNull
@NotEmpty
@Column(name = "CITY")
private String city;
...
@OneToMany(fetch = FetchType.EAGER)
@NotNull
@NotEmpty
protected Set<Role> roles = new HashSet<Role>();
Role roleDaoById = roleService.getRoleByName(RoleName.User.toString());
Set<Role> roles = new HashSet<Role>();
roles.add(roleDaoById);
member.setRoles(roles);
member.setSuspend(false);
member.setPlayer(true);
memberService.addMember(member);
Mein Problem ist, dass die Rollen bereits verfügbar sind in die Datenbank. Deshalb lade ich sie über roleService. Ich rufe memberService.addMember und das ruft mein Dao mit em.persist (Mitglied). Aber dieser Aufruf speichert die Rolle erneut und ich erhalte einen doppelten Schlüsselfehler für das Rollenobjekt. Ich möchte nur das Mitglied speichern und dann den Join-Tabelleneintrag für die Rolle vornehmen.
Was kann ich tun?
Hilft dies [http://stackoverflow.com/questions/7903800/hibernate-inserts-duplicates-into-a-onetomany-collection)? – nobeh
Danke für deine Antwort, aber weißt du nicht, wie mir das helfen könnte? –
Konkret können Sie versuchen [diese Antwort] (http://stackoverflow.com/a/7905027/248082)? – nobeh