Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

Boa tarde pessoal!!

Estou com um problema que ja estou ficando loco! rs
Está ocorrendo esse erro ao salvar ou atualizar meus dados:
tenho uma classe PropostaFornecedor
cujo seu identificar é uma chava composta: PropostaFornecedorPK

quando eu salvo um objeto do tipo proposta fornecedor esta ocorrendo o seguinte erro:
Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

já pesquisei muito, mas não consigo achar uma solução!!

O pior de tudo vem agora, em ambiente local, não ocorre o erro!!!
Mas no cliente rodando no servidor ocorre esse erro… :?

se alguem tiver alguma idéia do que possa estar causando este cenário eu agradeço…

Com base em um erro que eu tive, provavelmente o teu id não está sendo inicializado/populado então ele tentar dar um update e um registro que, por exemplo, o id é Zero, por isso essa exceção!

Mas não dá para afirmar pois você não deu muitos detalhes!

Dá mais detalhes página, fonte isso ajuda na hora de solucionar o problema!

OK!!

Bom o ambiente encontra - se da seguinte forma:
Para montar a tela, é necessário buscar os itens de um determinado processo onde,
estes itens receberão a proposta dos fornecedores!!!
Realizo a busca desses itens e crio uma proposta para cada item.
quando o fornecedor salva suas proposta, pego esta lista de itens onde foi informado o valor para cada item e
crio um objeto do tipo Proposta do fornecedor que contem a seguinte implementação

public class PropostaFornecedor  {
    
    private PropostaFornecedorPK propostaFornecedorPK;
    
    private ItemPlanilhaAquisicao itemPlanilhaAquisicao;
    
    private Fornecedor fornecedor;
    
    mais alguns atributos e os gets e sets 

quando vou salvar a classe proposta fornecedor é necessario informar a propostaFornecedorPK

public class PropostaFornecedorPK implements Serializable {
    
    private Integer idItemPlanilhaAquisicao;

    private Integer idFornecedor;

e ao salvar ocorre o erro que informei anteriormente!
tentei resolver da seguinte forma:
eu verificava se a pk estava preenchida, caso nao estivesse eu chamava o método save do hibernate
caso ja existisse chamaria o saveOrUpdate.

Antes da minha alteração esta chamando direto o saveOrUpdate e pensei que fosse o motivo da excessao pois se tivesse com o identificador informado,
ele iria invocar o update e como não havia registro dele no banco daria o erro!!
mas não resolveu…

só mais uma coisa!
esse é o mapeamento feito para a chave composta:

<composite-id name="propostaFornecedorPK" class="model.sgc.beans.PropostaFornecedorPK">
	<key-property name="idItemPlanilhaAquisicao" column="IP_ID" />
	<key-property name="idFornecedor" column="FO_ID" />
</composite-id>

E sistema Web?! Debuga a aplicação para saber o valor da Pk para ver se existe esse registro no banco!

O sistema é web,
debuguei o código e esta tudo correto:
os ids que compoem a pk existem seus respectivos registros em suas tabelas
e a pk informada ao salvar não existe na tabela de proposta de fornecedor!!1

e ai? nada?

estou com mesmo problema, utilizando vraptor 3.1. Dá a mesma exception, e to ficando louco já!!!

uma pergunta.

Quando usando VRaptor, tenho 2 métodos cadastra

public void cadastra(Banco banco){ session.save(banco); }

public void cadastra(Entrevistador e) throws HibernateException { session.save(e); }

acontece que Banco é um objeto de Entrevistador, ou seja, idBanco em entrevistador é um CHAVE ESTRANGEIRA para id na tabela Banco.

Quando vou inserir um Entrevistador, sigo os seguintes passos:

1 - cadastra(banco)
2 - entrevistador.setBanco(banco);
3 - cadastra(Entrevistador);

E acontece esse erro no momento de cadastrar entrevistador.
Porque acontece esse erro?
A ordem de execução está certa?

Obrigado pela ajuda

Está ocorrendo a mesmo problema para mim…

Alguém tem alguma solução para este erro?

Alguém?