JPA - executeUpdate mentindo pra mim!

2 respostas
javakid

pessoal, boa tarde!

estou alterando (tentando) no banco essa tabela…
quando passo na linha do executeUpdate(), que retorna a quantidade de linhas que foram alteradas, eu recebo 1 (até aí certo)
mas vou no banco e ele não fez o que tinha dito…

Query q = this.getEntityManager().createQuery("UPDATE PessoaBean p SET p.dataExclusaoPessoa = ?1, p.idOperadorExclusaoPessoa = ?2 WHERE p.idPessoa = ?3");
		q.setParameter(1, new Date(),TemporalType.DATE);
		q.setParameter(2, idUsuario);
		q.setParameter(3, idCliente);
		int i = q.executeUpdate();

bem… estou usando auto commit…
pode ser na transação ? ou bug ? alguem ja passou por isso ?

meu singleton de persistencia é simples:

public boolean init(){
		if (emf == null){
			emf = Persistence.createEntityManagerFactory("banco");
			em = emf.createEntityManager();
			tx = em.getTransaction();
			return true;
		} 
		return false;
	}

valew

2 Respostas

Rafael_Carneiro

Tente dar um flush após o update.

javakid

obrigado cara!

resolvi abrindo uma nova transação e dando um flush!

int i = q.executeUpdate();
		this.getEntityManager().flush();
		this.getEntityTransaction().commit();

valew

Criado 19 de outubro de 2009
Ultima resposta 20 de out. de 2009
Respostas 2
Participantes 2