bom dia pessoal.
seguinte estou fazendo um sistema onde eu insiro serviços em uma ordem de serviço mas qndo eu insiro mais de um me da erro
meu beanpackage br.com.projeto.controller;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import br.com.projeto.beans.Funcionario;
import br.com.projeto.beans.OrdemDeServico;
import br.com.projeto.beans.PessoaFisica;
import br.com.projeto.beans.PessoaJuridica;
import br.com.projeto.beans.TipoDeServico;
import br.com.projeto.dao.HibernateDao;
@ManagedBean
@SessionScoped
public class OrdemDeServicoBean implements InterfaceController {
private OrdemDeServico ordemDeServico = new OrdemDeServico();
private PessoaFisica pessoaFisica = new PessoaFisica();
private PessoaJuridica pessoaJuridica = new PessoaJuridica();
private Funcionario funcionario = new Funcionario();
private List<TipoDeServico> tiposDeServico = new ArrayList<TipoDeServico>();
private TipoDeServico tipoDeServico = new TipoDeServico();
private float valor = 0;
@Override
public void salvar() {
try {
FacesContext context = FacesContext.getCurrentInstance();
HibernateDao<OrdemDeServico> hibernateDao = new HibernateDao<OrdemDeServico>(OrdemDeServico.class);
ordemDeServico.setFuncionario(funcionario);
ordemDeServico.setPessoaFisica(pessoaFisica);
//ordemDeServico.setPessoaJuridica(pessoaJuridica);
ordemDeServico.setTipoDeServico(tiposDeServico);
hibernateDao.salvar(ordemDeServico);
ordemDeServico = new OrdemDeServico();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso!", "Ordem De Serviço Inserida"));
} catch (Exception e) {
System.out.println(e);
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro!", " " + e));
}
}
@Override
public void remove() {
try {
FacesContext context = FacesContext.getCurrentInstance();
HibernateDao<OrdemDeServico> hibernateDao = new HibernateDao<OrdemDeServico>(
OrdemDeServico.class);
hibernateDao.deletar(ordemDeServico);
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_INFO, "Sucesso!",
"Ordem De Serviço Deletada"));
} catch (Exception e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "Erro!", " " + e));
}
}
@Override
public String antesUpdate() {
try {
HibernateDao<OrdemDeServico> hibernateDao = new HibernateDao<OrdemDeServico>(OrdemDeServico.class);
Integer id = ordemDeServico.getId();
ordemDeServico = hibernateDao.getBean(id);
return "EditarOrdemDeServico";
} catch (Exception e) {
System.out.println("Erro " + e);
return "Erro.jsf";
}
}
@Override
public void update() {
try {
FacesContext context = FacesContext.getCurrentInstance();
HibernateDao<OrdemDeServico> hibernateDao = new HibernateDao<OrdemDeServico>(
OrdemDeServico.class);
hibernateDao.atualizar(ordemDeServico);
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_INFO, "Sucesso!",
"Ordem De Serviço Atualizada"));
} catch (Exception e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "Erro!", " " + e));
}
}
public List<OrdemDeServico> getListOrdemDeServico() {
List<OrdemDeServico> ordemDeServicos = new ArrayList<OrdemDeServico>();
HibernateDao<OrdemDeServico> hibernateDao = new HibernateDao<OrdemDeServico>(OrdemDeServico.class);
ordemDeServicos = hibernateDao.getBeans();
return ordemDeServicos;
}
public String selecionarTiposDeServico() {
HibernateDao<TipoDeServico> hibernateTipoDeServico = new HibernateDao<TipoDeServico>(TipoDeServico.class);
Integer id = tipoDeServico.getId();
tipoDeServico = hibernateTipoDeServico.getBean(id);
return "CadastroOrdemDeServico";
}
public List<TipoDeServico> adicionarServico() {
tiposDeServico.add(tipoDeServico);
calcularTotal();
return tiposDeServico;
}
public void calcularTotal() {
TipoDeServico valorTotal = new TipoDeServico();
valor = 0;
ordemDeServico.setValorTotal(valor);
for (int i = 0; i < tiposDeServico.size(); ++i) {
valorTotal = (TipoDeServico) tiposDeServico.get(i);
valor = valor + valorTotal.getValor();
}
ordemDeServico.setValorTotal(valor);
}
public List<TipoDeServico> getListDeServico() {
return tiposDeServico;
}
public String selecionarFuncionario() {
HibernateDao<Funcionario> hibernateDao = new HibernateDao<Funcionario>(Funcionario.class);
Integer id = funcionario.getId();
funcionario = hibernateDao.getBean(id);
ordemDeServico.setFuncionario(funcionario);
return "CadastroOrdemDeServico";
}
public String selecionarPessoaFisica() {
try {
HibernateDao<PessoaFisica> hibernateDao = new HibernateDao<PessoaFisica>(PessoaFisica.class);
Integer id = pessoaFisica.getId();
pessoaFisica = hibernateDao.getBean(id);
return "CadastroOrdemDeServico";
} catch (Exception e) {
System.out.println("Erro " + e);
return "Erro";
}
}
public String SelecionarPessoaJuridica() {
HibernateDao<PessoaJuridica> hibernateDao = new HibernateDao<PessoaJuridica>(
PessoaJuridica.class);
Integer id = pessoaJuridica.getId();
pessoaJuridica = hibernateDao.getBean(id);
return "CadastroOrdemDeServico";
}
public OrdemDeServico getOrdemDeServico() {
return ordemDeServico;
}
public void setOrdemDeServico(OrdemDeServico ordemDeServico) {
this.ordemDeServico = ordemDeServico;
}
public PessoaFisica getPessoaFisica() {
return pessoaFisica;
}
public void setPessoaFisica(PessoaFisica pessoaFisica) {
this.pessoaFisica = pessoaFisica;
}
public PessoaJuridica getPessoaJuridica() {
return pessoaJuridica;
}
public void setPessoaJuridica(PessoaJuridica pessoaJuridica) {
this.pessoaJuridica = pessoaJuridica;
}
public Funcionario getFuncionario() {
return funcionario;
}
public void setFuncionario(Funcionario funcionario) {
this.funcionario = funcionario;
}
public List<TipoDeServico> getTiposDeServico() {
return tiposDeServico;
}
public void setTiposDeServico(List<TipoDeServico> tipoDeServico) {
this.tiposDeServico = tipoDeServico;
}
public TipoDeServico getTipoDeServico() {
return tipoDeServico;
}
public float getValor() {
return valor;
}
public void setValor(float valor) {
this.valor = valor;
}
public void setTipoDeServico(TipoDeServico tipoDeServico) {
this.tipoDeServico = tipoDeServico;
}
}
minha classe
package br.com.projeto.beans;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
@Entity
public class OrdemDeServico {
@Id
@GeneratedValue
private Integer id;
@OneToOne(cascade = javax.persistence.CascadeType.PERSIST)
@JoinColumn(name = "id_pessoaFisica")
@Fetch(FetchMode.JOIN)
private PessoaFisica pessoaFisica;
// @OneToOne(cascade = javax.persistence.CascadeType.PERSIST)
// @JoinColumn(name = "id_pessoaJuridica")
// @Fetch(FetchMode.JOIN)
// private PessoaJuridica pessoaJuridica;
@OneToOne(cascade = javax.persistence.CascadeType.PERSIST)
@JoinColumn(name = "id_funcionario")
@Fetch(FetchMode.JOIN)
private Funcionario funcionario;
@OneToMany(cascade = javax.persistence.CascadeType.PERSIST)
@JoinColumn(name = "id")
@Fetch(FetchMode.JOIN)
private List<TipoDeServico> tipoDeServico;
private String status;
private Float valorTotal;
public List<TipoDeServico> getTipoDeServico() {
return tipoDeServico;
}
public void setTipoDeServico(List<TipoDeServico> tipoDeServico) {
this.tipoDeServico = tipoDeServico;
}
public Float getValorTotal() {
return valorTotal;
}
public void setValorTotal(Float valorTotal) {
this.valorTotal = valorTotal;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public PessoaFisica getPessoaFisica() {
return pessoaFisica;
}
public void setPessoaFisica(PessoaFisica pessoaFisica) {
this.pessoaFisica = pessoaFisica;
}
// public PessoaJuridica getPessoaJuridica() {
// return pessoaJuridica;
// }
// public void setPessoaJuridica(PessoaJuridica pessoaJuridica) {
// this.pessoaJuridica = pessoaJuridica;
// }
public Funcionario getFuncionario() {
return funcionario;
}
public void setFuncionario(Funcionario funcionario) {
this.funcionario = funcionario;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
o erro
38695 [http-bio-8080-exec-3] ERROR org.hibernate.jdbc.AbstractBatcher - Exception executing batch:
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:85)
at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:70)
at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:90)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:183)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at br.com.projeto.dao.HibernateDao.salvar(HibernateDao.java:23)
at br.com.projeto.controller.OrdemDeServicoBean.salvar(OrdemDeServicoBean.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
38697 [http-bio-8080-exec-3] ERROR org.hibernate.event.def.AbstractFlushingEventListener - Could not synchronize database state with session
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:85)
at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:70)
at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:90)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:183)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at br.com.projeto.dao.HibernateDao.salvar(HibernateDao.java:23)
at br.com.projeto.controller.OrdemDeServicoBean.salvar(OrdemDeServicoBean.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1