следующего сценария:JPA не сохраняется детям
У меня есть
объект пользователя:
...
@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);
Моя проблема заключается в том, что роли уже доступны базы данных. Вот почему я загружаю их через roleService. Я вызываю memberService.addMember, и это вызывает мое dao с em.persist (member). Но этот вызов снова сохраняет роль, и я получаю дубликат ключевой ошибки для объекта роли. Я только хочу сохранить член, а затем сделать запись таблицы соединений для роли.
Что я могу сделать?
Помогает ли [это] (http://stackoverflow.com/questions/7903800/hibernate-inserts-duplicates-into-a-onetomany-collection)? – nobeh
Thanx для вашего ответа, но не знаю, как это может мне помочь? –
В частности, вы можете попробовать [этот ответ] (http://stackoverflow.com/a/7905027/248082)? – nobeh