Boa tarde. Bom há alguns pontos que devem ser vistos:
Primeiramente, sugiro que você poste suas duvidas relacionadas à Hibernate em uma lista especifica, assim você tem mais chance de obter uma resposta. Apesar de você estar utilizando Flex na camada de UI, neste caso o mesmo não esta relacionado de modo algum com seu problema. (Ex http://groups.google.com/group/nhibernate-br<http://groups.google.com/group/nhibernate-br?pli=1> Apesar de ser NHIbernate, os problemas e soluções são sempre os mesmos). Quanto ao seu codigo, não entendi a logica do seguinte trecho: * if(objeto.getDepCodigo() != 0){ objeto.setDepCodigo(objeto.getDepCodigo()); }* * * Acredito que deva ser: * if(objeto.getDepCodigo() != 0){ * *departamento **.setDepCodigo(objeto.getDepCodigo()); }* E aqui: ControleDAO<br.com.equipamentos.bean.Departamento> controleDao = new ControleDAO(*departamento*); controleDao.insereOuAltera(); Alem disso, tratando de hibernate você deve checar o seu tratamento (mapeamento) para chave primaria (identity, sequence, etc) e deixar o campo código de um novo objeto como null mesmo. Também aconselho a dar um get antes de atualizar, caso seu objeto parâmetro possua codigo. Espero que isto lhe ajude. Boa sorte. Rodrigo Cupini Em 3 de fevereiro de 2012 17:04, Julio Cesar <[email protected]>escreveu: > Boa tarde pessoal estou testando um crud flex + hibernate, testando um > metodo saveOrUpdate > > só que estou tentando colocar o insert e update no mesmo metodo no flex: > > var meudep:Departamento = new Departamento; > meudep.depCodigo = int(txt_codigo.text) > meudep.depNome = txt_nome.text > > var remoteObject:RemoteCall = new > RemoteCall(RemoteDestination.USER_DESTINATION); > > remoteObject.invoke("insereOUaltera",onFault,onResultInsere,meudep); > > *no java estou recebendo assim:* > > @Override > public boolean insereOuAltera(br.com.equipamentos.bean.Departamento > objeto) { > try { > Departamento departamento = new Departamento(); > > *acho q aqui q ta o cara errado* > > * if(objeto.getDepCodigo() != 0){ > objeto.setDepCodigo(objeto.getDepCodigo()); > }* > > departamento.setDepNome(objeto.getDepNome()); > departamento.setDepAtivo(objeto.getDepAtivo()); > ControleDAO<br.com.equipamentos.bean.Departamento> controleDao > = new ControleDAO(objeto); > controleDao.insereOuAltera(); > return true; > } catch (Exception e) { > e.printStackTrace(); > return false; > } > } > > > só que da o erro: > > Batch update returned unexpected row count from update [0]; actual row > count: 0; expected: 1 > > obs: no java da o msm erro, então nao é o flex > > br.com.equipamentos.bean.Departamento departamento = new > Departamento(); > *departamento.setDepCodigo(0);* <- *O ERRO ESTA AQUI* > departamento.setDepNome("alterado INFORMATICA 1s0"); > departamento.setDepAtivo("N"); > br.com.equipamentos.delegate.FDepartamento fdepartamento = new > FDepartamento(); > System.out.println(fdepartamento.insereOuAltera(departamento)); > //fdepartamento.deleta(departamento); > > > eu não estou conseguindo passar o codigo como null > > > alguém trabalha dessa forma ? > > abs > > julio > > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para [email protected] > Para sair da lista, envie um email em branco para > [email protected] > Mais opções estão disponíveis em http://groups.google.com/group/flexdev -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev
