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!
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…
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