Erro ao alterar Id e dar update em objeto persistente no Hibernate

2 respostas
D

Opa!
Estou com um problema, tenho um registro q tenho q alterar um campo porem esse campo faz parte do Id composto do meu bean. No caso tenho q trocer um produto de filial e a filial faz parte do id composto. O problema é q ao executar o update ele dá um erro:

org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

Esse erro geralmente acontece quando tento dar um update num item sem preencher corretamente o id fazendo com q ele não encotre o item pra update. Mas no caso deu ter, no mesmo método buscado o bean persistente pelo hibernate, alterado o Id e persistido, não era pra ele entender q tem q colocar na clausura where o id antigo e não o novo?

Fico grato a quem puder ajudar…

2 Respostas

Regis_A_Rocha

voce pode passar o trecho de codigo que esta fazendo isso

D

Prontamente…

Tpt261 tpt261 = (Tpt261) request.getDto("tpt261");
if (tpt261.getFilialant() > 0 && tpt261.getTpt261Id().getCdfilial() != tpt261.getFilialant()) {
	//aqui eu busco o registro no banco passando o numero da filial antigo 
	Tpt261 tpt261Ant = this.digitacaoBemLogic.buscaBem(tpt261,tpt261.getFilialant()).get(0);
	//aqui q eu acho q está o problema, qdo troco a filial q faz parte do compositeId
	tpt261Ant.getTpt261Id().setCdfilial(tpt261.getTpt261Id().getCdfilial());
	tpt261 = this.digitacaoBemLogic.updateDigitacaoBem(tpt261Ant);
}

O erro acontece qdo vai dar o update, na linha 7.

Criado 16 de julho de 2009
Ultima resposta 16 de jul. de 2009
Respostas 2
Participantes 2