Hibernante NAO insere [RESOLVIDOO]

[code]public class TesteAcesso_PermissoesDAO {

public static void main(String[] args) {

	MySQLFactoryPessoaDAO factory = MySQLFactoryPessoaDAO
			.getNewMySQLFactoryPessoaDAO();
	List l = factory.getMySQLAcesso_PermissoesDAO().pessoaListarTodos();
	Iterator iter = l.iterator();
	String[] funcao;
	while (iter.hasNext()) {
		Acesso_Permissoes element = (Acesso_Permissoes) iter.next();
		funcao = element.getFuncoes().split("[,]");

		for (int i = 0; i &lt funcao.length; i++) {

			try {
				element.setFuncao(Integer.parseInt(funcao[i].trim()));
			} catch (Exception e) {
				System.err.println("tem espaco ainda");
			}
			factory.getMySQLFactoryPessoaDAO().beginTransaction();
			factory.getMySQLAcesso_PermissoesDAO().add(element);
			factory.getMySQLFactoryPessoaDAO().commit();
		}
		factory.getMySQLFactoryPessoaDAO().close();
		break;
	}[/code]

Pessoa o que preciso fazer é o seguinte.
Tenho uma tabela abaixo:

Estou tentando fazer com esse codigo algo assim:

Porem o hibernante so atualiza ao inves de da insert, o console do eclipse abaixo.

1
344
902
999, 998, 83, 113, 117, 118, 74, 65, 64, 66, 76, 110, 53, 18, 17, 20, 19, 114, 111, 4, 2, 121, 108, 85, 103, 99, 96, 134, 151, 149, 87, 94, 104, 500, 902,
Hibernate: update Acesso_Permissoes set codempresa=?, funcao=?, funcoes=? where codpessoa=?
Hibernate: update Acesso_Permissoes set codempresa=?, funcao=?, funcoes=? where codpessoa=?
Hibernate: update Acesso_Permissoes set codempresa=?, funcao=?, funcoes=? where codpessoa=?
Hibernate: update Acesso_Permissoes set codempresa=?, funcao=?, funcoes=? where codpessoa=?

É nesse método aqui que o update/insert ocorre?

factory.getMySQLAcesso_PermissoesDAO().add(element);

Se sim, pode postar a definição do método?

Lipe, segue abaixo:

/** * @return Salva uma Pessoa no banco de Dados(tabela Pessoa) * @author Alexandre Ferreira * @param Pessoa * pessoa * @category DAOPessoa * @date 15/11/2006 */ public void add(Acesso_Permissoes pessoa) { session.save(pessoa); }

eu consegui fazendo um uma coluna id na tabela, fiz esse id ser auto-increment e conseguir fazer o que desejava.
porem isso foi um jeitinho brasileiro, e nao o jeito certo.

Flw…

Você chama session.save() e o Hibernate gera uma query de UPDATE? Tem alguma coisa faltando.

Inicie uma transacao antes de dar o save()



public void add(Acesso_Permissoes pessoa) {
                Transaction tx = session.beginTransaction();
 		 session.save(pessoa);
                tx.commit();
                session.close();
 	}

Eu consegui fazer, na verdade era um erro meu mesmo.
Com calma eu consegui…

AMigo sobre abrir uma transaction no metodo feri uma boa pratica de programcao.
Imagine se tivesse q fzr esse insert, com outras coisa dependendo da mesma transaction , n ia da…
o q fiz foi instanciar um novo objeto com um transaction e um comit em cada loop, mas fechando a conexao no final do loop…

flw a todos…

Realmente, me fiz entender mal com um exemplo pior ainda rsss.
Apenas a ideia era utilizar-se de transação para a operação, me expressei mal.
O importante é ter chegado na solução do problema utilizando a transação da melhor forma possível :wink:

[]´s

haahhaah…eh isso mesmo amigo…
[]'s