Ao confirmar a finalização de uma venda dá um erro de exceção e a venda não é finalizada, ou seja o produto não é contabilizado no banco de dados e nem a mensagem de sucesso é gerada segue o código.
Vendas .DAO (erro no console)
@SuppressWarnings("unchecked")
public List<Vendas> listar() {
Session sessao = HibernateUtil.getSessionFactory().openSession();
List<Vendas> venda = null;
try {
Query consulta = sessao.getNamedQuery("Venda.listar");
venda = consulta.list();
} catch (RuntimeException ex) {
throw ex;
}
finally {
sessao.close();
}
return venda;
}
public Vendas buscarPorCodigo(Long codigo) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
Vendas venda = null;
try {
Query consulta = sessao.getNamedQuery("Venda.buscarPorCodigo");
consulta.setLong("codigo", codigo);
venda = (Vendas) consulta.uniqueResult();
} catch (RuntimeException ex) {
throw ex;
}
finally {
sessao.close();
}
return venda;
}
public void excluir(Vendas venda) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
Transaction transacao = null;
try {
transacao = sessao.beginTransaction(); // abrindo a transação
sessao.delete(venda);
transacao.commit(); // confirmando a transação
} catch (RuntimeException ex) {
if (transacao != null) {
transacao.rollback(); // desfaz a transação
}
}
Vendas.Bean (erro no console)
public void remover(Item item){
int posicaoEncontrada = -1;
for(int pos = 0; pos < itens.size() && posicaoEncontrada < 0; pos++){
Item itemTemp = itens.get(pos);
if(itemTemp.getProduto().equals(item.getProduto())){
posicaoEncontrada = pos;
}
}
if(posicaoEncontrada > -1){
itens.remove(posicaoEncontrada);
vendaCadastro.setValor_total(vendaCadastro.getValor_total().subtract(item.getValor_parcial()));
}
}
public void carregarDadosVenda(){
vendaCadastro.setHorario(new Date());
FuncionariosDAO dao = new FuncionariosDAO();
Funcionario funcionario = dao.buscarPorCodigo(4L);
vendaCadastro.setFuncionario(funcionario);
}
public void salvar(){
try {
VendasDAO vdao = new VendasDAO();
Long codigoVenda = vdao.salvar(vendaCadastro);
Vendas vendaFK = vdao.buscarPorCodigo(codigoVenda);
for(Item item : itens){
item.setVenda(vendaFK);
ItemDAO itemdao = new ItemDAO();
itemdao.salvar(item);
}
vendaCadastro = new Vendas();
vendaCadastro.setValor_total(new BigDecimal("0.00"));
itens = new ArrayList<Item>();
JSFUtil.adicionarMensagemSucesso("Salvo com Sucesso");
} catch (RuntimeException e) {
JSFUtil.adicionarMensagemErro("ex.getMessage()");
e.printStackTrace();
}
Console erro
at br.com.VendasPecas.DAO.VendasDAO.buscarPorCodigo(VendasDAO.java:74)
at br.com.VendasPecas.Bean.VendasBean.salvar(VendasBean.java:182)
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:247)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
at javax.faces.event.MethodExpressionActionListener.processAction(Unknown Source)
at javax.faces.event.ActionEvent.processListener(Unknown Source)
at javax.faces.component.UIComponentBase.broadcast(Unknown Source)
at javax.faces.component.UICommand.broadcast(Unknown Source)
at javax.faces.component.UIViewRoot.broadcastEvents(Unknown Source)
at javax.faces.component.UIViewRoot.processApplication(Unknown Source)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(Unknown Source)
at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
at com.sun.faces.lifecycle.LifecycleImpl.execute(Unknown Source)
at javax.faces.webapp.FacesServlet.service(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at