Hibernate! HELP!

[color=“red”]net.sf.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: 1, of class: br.com.cidvale.montagem.model.Funcionario[/color]

                localizarVisual.btSearch.addActionListener(new java.awt.event.ActionListener() {
                    public void actionPerformed(java.awt.event.ActionEvent evt) {
                        tblResult.removeAll();
                        try {
                            Session session = HibernateSessionFactory.getFactory().getSession();
                            java.util.List list = session.createSQLQuery("SELECT {funcionario.*} FROM Funcionario AS {funcionario} WHERE " + cboField.getSelectedItem().toString() + " LIKE '%" + txtStr.getText() + "%' ORDER BY " + cboOrder.getSelectedItem().toString(),"funcionario",Funcionario.class).list();
                            
                            DefaultTableModel dtm = (javax.swing.table.DefaultTableModel) tblResult.getModel();
                            dtm.setRowCount(0);
                            for (int i = 0;list.size() > i ;i++) {
                                Funcionario funcionario = (Funcionario) list.get(i);
                                dtm.addRow(new Object[] {
                                        funcionario.getId(),
                                        funcionario.getNome()
                                });
                            }
                        } catch (HibernateException e1) {
                            e1.printStackTrace();
                        }
                    }
                });

Depois eu executo esse codigo

    public void setIdRetorno(Integer id) {
        Funcionario funcionario = new Funcionario();
        FuncionarioDao funcionarioDao= new FuncionarioDao();
        funcionarioDao.load(funcionario,1);
        funcionarioIFrame.txtCpf.setText(funcionario.getCpf());
        //funcionarioIFrame.txtComplemento.setText(funcionario.getEndereco().getComplemento());
        funcionarioIFrame.txtDtNasc.setText(funcionario.getDataNasc().toString());
        funcionarioIFrame.txtEmail.setText(funcionario.getContato().getEmail());
        funcionarioIFrame.txtFax.setText(funcionario.getContato().getFax());
        funcionarioIFrame.txtFone.setText(funcionario.getContato().getFone());
        funcionarioIFrame.txtFone2.setText(funcionario.getContato().getFone2());
        //funcionarioIFrame.txtFundacao.setText(funcionario.get());
        funcionarioIFrame.txtId.setText(String.valueOf(funcionario.getId()));
        //funcionarioIFrame.txtLogradouro.setText(funcionario.getEndereco().getLogradouro().getNome().toString());
        funcionarioIFrame.txtNome.setText(funcionario.getNome());
        //funcionarioIFrame.txtNumero.setText(funcionario.getEndereco().getNumero());
        funcionarioIFrame.txtRg.setText(funcionario.getRg());
        funcionarioIFrame.txtSite.setText(funcionario.getContato().getSite());
        funcionarioIFrame.setTitle("TITULO - " + id);
    }

e dah este erro ai

Parece que vc ta com dois objetos no banco com o mesmo identificador!!
Da uma olhada! No banco!!!

mas como eu mudo o identificador,
Solução!!!

Qual a versão do Hibernate que você usa??
Este problema é o seguinte: O Hibernate precisa de uma instâcia do objeto para que ele persista no banco. Provavelmente você fez um new Objeto(), setou os valores e mandou salvar, certo? Isso não funciona!
Quando você envia um objeto para o hibernate, ele não entende o seu objeto como uma instancia persistent. O que você deve fazer é, antes de atualizar ou deletar, pegar a versão do objeto no banco. Isso pode ser feito usando o método get ou load do hibernate, que obtem um objeto por seu identificador. No caso de atualizar o objeto, você pega a instancia do hibernate usando um novo objeto, atribui os valores do seu ao novo, fazendo atualização dos campos ou replace(substituir tudo, inclusive campos null) do objeto.

estou usando a versao 2.7 , mas queria mudar para 3 mas não a lista das libs que devo usar para trabalhar com xdoclet, se alguem souber posta ai :razz: