Erro ao alterar um dado no jpa

0 respostas
M

Em uma determinada parte do meu programa tenho que gravar um registro no banco de dados, se eu adicionar o registro pela primeira vez, grava sem problemas, mas se eu editar o mesmo registro sem antes ter perdido o foco do registro na tela, acontece uma exceção:
aused by: java.lang.NullPointerException
at oracle.toplink.essentials.descriptors.VersionLockingPolicy.isNewerVersion(VersionLockingPolicy.java:497)

o metodo que processa a gravação dos dados é:
private boolean processaGravacao(boolean isNovo) {
		boolean flag = false;
		Object obj;
		try {
			obj = componentsToEntity();

			try {
				if(antesGrava()){
					if (isNovo) {
						obj = ger.insere((T) obj);
					} else {
						obj = ger.update((T) obj);
					}
					flag = true;
					entityToComponents(obj);					
				}
			} catch (Exception e2) {
				throw new RuntimeException(e2);
			}
		} catch (CampoInvalidoException e) {
			MsgUtils.erro(this, e.getMessage());
		}
		depoisGrava(flag);
		return flag;
	}

O método acima usa este método que é o que atualiza o objeto.

/**
	 * atualiza um objeto
	 * 
	 * @param atual
	 * @return o objeto alterado
	 */
	public T update(T atual) {
		EntityTransaction t = em.getTransaction();
		t.begin();

		atual = em.merge(atual);

		em.flush();
		t.commit();
		return atual;
	}

Alguém tem alguma idéia do que pode ser?

Criado 20 de novembro de 2007
Respostas 0
Participantes 1