Olá pessoal
deixa eu explicar meu problema: em um sistema que estou fazendo, um usuário (User) pode ter vários privilégios (Role), um privilégio pode estar associado a vários usuários. Ou seja, um relacionamento many-to-many unidirecional.
Imagens valem mais que palavras então… é disso que estou falando:

Quando eu adiciono um objeto Role, tudo funciona normalmente, mas na hora de cadastrar um usuário, obtenho o seguinte erro:
javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.klimp.entities.Role
Já segui um tutorial (http://uaihebert.com/?p=52) e estou desconfiando que seja alguma coisa relacionada ao atributo “mappedBy”.
Outras referências onde pesquisei:
https://forum.hibernate.org/viewtopic.php?f=9&t=970398
http://www.guj.com.br/java/127260-resolvido-manytomany-problemas-com-relacionamento-jpa
http://www.guj.com.br/java/85186-relacionamento-manytomany-hibernate
Classe “Role”
@Entity
@Table(name="roles",uniqueConstraints=@UniqueConstraint(columnNames="code"))
public class Role implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
protected int identifier;
protected String code;
protected String summary;
...
}
Classe User:
@Entity
@Table(name = "users")
public class User implements Serializable {
public static final int PASSWORD_MIN_LENGTH = 6;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected int userID;
protected String userName;
@Column(length=128)
protected String password;
protected String name;
protected String lastName;
@Temporal(TemporalType.DATE)
@Column(nullable = true)
protected Date accountExpirationDate;
@ManyToMany(
fetch = FetchType.EAGER,
targetEntity = Role.class,
cascade=CascadeType.ALL)
protected List<Role> roles;
...
}
Qualquer ajuda será muito bem vinda!
Obrigado!