Bom dia,
Sinceramente eu li muita coisa a respeito, mas não entendi. Tenho a seguinte Classe:
@Entity
@Table(schema="public", name="pessoa")
@SequenceGenerator(name="id_creator", sequenceName="pessoa_id")
public class Pessoa implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="id_creator")
@Column(name="id_pessoa")
private Long id;
@OneToOne
@JoinColumn(name="id_escola")
private Escola escola = new Escola();
@OneToOne(cascade={CascadeType.ALL})
@JoinColumn(name="id_endereco")
private Endereco endereco = new Endereco();
@OneToOne(cascade={CascadeType.ALL})
@JoinColumn(name="id_contato")
private Contato contato = new Contato();
@OneToOne(cascade={CascadeType.ALL})
@JoinColumn(name="id_pessoa_responsavel")
private Pessoa responsavel = null;
@Column(name="nome", nullable=false, length=50)
private String nome;
@Column(name="cpf", unique=true, nullable=false, length=14)
private String cpf;
@Column(name="rg", nullable=false, length=12)
private String rg;
@Column(name="comentario", length=255)
private String comentario;
@Column(name="tp_pessoa", nullable=false, length=1)
private Character tipoPessoa;
@Column(name="data_nascimento", nullable=false)
@Temporal(TemporalType.DATE)
private Date dataNascimento;
@Column(name="data_excluido")
@Temporal(TemporalType.DATE)
private Date dataExcluido;
@Column(name="excluido")
private Short excluido;
@OneToOne
@JoinColumn(name="id_funcionario_exclusao")
private Funcionario funcionarioExclusao;
//getter and setter
}
Quando insiro um novo registro, sem o representante, insere perfeitamente. Agora se incluo, referenciando um representante, o erro é apresentado.
04/03/13 10:40 [http-bio-8080-exec-6] ERROR br.com.renaissance.controller.PessoaBean:166 - br.com.renaissance.exception.FacadeException: br.com.renaissance.exception.DAOException: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [br.com.renaissance.entities.Pessoa#1]
04/03/13 10:40 [http-bio-8080-exec-6] ERROR br.com.renaissance.filter.ValidateSession:62 - org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [br.com.renaissance.entities.Pessoa#1]
No meu caso em questão, estou relacionando ao novo registro um representante já existente.
Meu método DAO:
public void save(T t) throws DAOException {
try {
HibernateHelper.getManagedSession().save(t);
} catch (Exception e) {
throw new DAOException(e);
}
}
Desde já agradeço.