Caros,
Se puderem me ajudar.
Estou com problemas ao fazer inserções e alterações utilizando o Cascade.
tenho as tabelas de perfis, usuários e permissões:
ao inserir um perfil devo associar ao usuário e as permissões.
essa é a exception:
[color=red]Exception in thread “AWT-EventQueue-0” org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [br.com.eletropaulo.sitede.model.bean.permissao.PermissaoBean#0][/color]
Desde já muito obrigado!
Segue abaixo o Bean e o erro:
@Entity
@Table(name = "PERFIL")
@SequenceGenerator(name = "PERFIL_SEQ", sequenceName = "PERFIL_SEQ", allocationSize = 1)
public class PerfilBean implements Serializable, Renderizavel {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PERFIL_SEQ")
@Column(name="id_perfil")
private Long id;
@Column(name="nom_perfil")
private String nome;
@Column(name="dsc_perfil")
private String descricao;
@Column(name="sts_perfil")
private boolean status = true;
@JoinTable(name = "PERFIL_USUARIO", joinColumns = {
@JoinColumn(name = "ID_PERFIL", referencedColumnName = "ID_PERFIL")}, inverseJoinColumns = {
@JoinColumn(name = "ID_USUARIO", referencedColumnName = "ID_USUARIO")})
@ManyToMany
private List<UsuarioBean> usuarios = new ArrayList<UsuarioBean>();
@OneToMany(cascade = {CascadeType.ALL, CascadeType.REMOVE})
@JoinColumn(name = "id_perfil")
private List<PermissaoBean> permissoes = new ArrayList<PermissaoBean>();
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
...
Um objeto diferente com o mesmo valor do identificador já está associado com a sessão 
E você pode me dizer como posso resolver?
Grato!
Tente fazer um clear no entityManager.
vulgarmente falando e sem prestar muita atenção no post heeh
entityManager.clear() antes de iniciar o fluxo para salvar o objeto?
:shock: :shock: :shock:
[quote=pdioniziofilho]vulgarmente falando e sem prestar muita atenção no post heeh
entityManager.clear() antes de iniciar o fluxo para salvar o objeto?
:shock: :shock: :shock: [/quote]
jovem, qual a melhor solução?
[quote=clunsde][quote=pdioniziofilho]vulgarmente falando e sem prestar muita atenção no post heeh
entityManager.clear() antes de iniciar o fluxo para salvar o objeto?
:shock: :shock: :shock: [/quote]
jovem, qual a melhor solução?[/quote]
Efebo (
) , por favor, não leve meu post como uma ofensa ao seu. No momento que eu postei o meu não tinha visto o seu. Desculpe-me se parece que estou “zuando” o seu topico, mas é que eu não tinha lido muito bem o topico e quis dar uma resposta rápida.
Bem, o que eu acho q tinha que ver é se esse fluxo dele de inserção já não está tentando inserir o objeto 2 vezes, ou então, verificar se o objeto ja não existe no entityManager chamando o metodo contains …
contains(Object entity): Check if the instance belongs to the current persistence context.

[quote=pdioniziofilho][quote=clunsde][quote=pdioniziofilho]vulgarmente falando e sem prestar muita atenção no post heeh
entityManager.clear() antes de iniciar o fluxo para salvar o objeto?
:shock: :shock: :shock: [/quote]
jovem, qual a melhor solução?[/quote]
Efebo (
) , por favor, não leve meu post como uma ofensa ao seu. No momento que eu postei o meu não tinha visto o seu. Desculpe-me se parece que estou “zuando” o seu topico, mas é que eu não tinha lido muito bem o topico e quis dar uma resposta rápida.
Bem, o que eu acho q tinha que ver é se esse fluxo dele de inserção já não está tentando inserir o objeto 2 vezes, ou então, verificar se o objeto ja não existe no entityManager chamando o metodo contains …
contains(Object entity): Check if the instance belongs to the current persistence context.
[/quote]
Não levei não, é que realmente eu também não sei. Aconteceu isso comigo, quando no entityManager eu pesquisava algum objeto e tentava inserir um outro objeto. Ele gerava este erro, ou um erro parecido.
por exemplo: O objeto carro, contêm uma roda, eu pesquisa a roda e setava no carro. Só que a hora que eu ia inserir o carro, dava esse pau.
O que eu fiz foi fazer um clear no entitymanager e funcionou. Agora porque, não tive tempo para pesquisar. Por isso gostaria de esclarecer.
Caros!
Quero agradecer pelo auxílio!!
Acabei deixando de lado a opção de usar o cascade.
Mudei a forma de relacionar os perfis com as permissões.
Grato!