Problemas ao Persistir ArrayList

7 respostas
J

Pessoal bom dia!!

Estou apanhando para fazer a gravação em banco com o hibernate de um ArrayList. A relação é 1-n, vários item_pedido, para cada pedido.
Preencher o Array tudo bem, mas não estou conseguindo gravar os item_pedido

Metodo de criação do ArrayList:

public synchronized void CriaPedido(Pedido pedido,
        CarrinhoCompra carrinhoCompra, Correntista cfAux) {
        pedido.setCorrentista(cfAux);
        Status_PedidoFacade statusPedidoFacade = new Status_PedidoFacade();
        pedido.setStatus_pedido(statusPedidoFacade.findByDescricao("aberto"));
        pedido.setValor_total(carrinhoCompra.getValor_total_item());
        ArrayList itemPedido = new ArrayList(); 
        try {
         HibernateUtil.beginTransaction(); 
         Session session = HibernateUtil.currentSession();
         Iterator itensCompra = carrinhoCompra.getItensCompra().iterator();
            while (itensCompra.hasNext()) {
             Item_Pedido item = (Item_Pedido) itensCompra.next();
             itemPedido.add(itensCompra);
             item.setProduto(item.getProduto());
             item.setQuantidade(item.getQuantidade());
             item.setValor_item(item.getValor_item());
             item.setValor_total_item(carrinhoCompra.getValor_total_item());
            }
    }
    catch (Exception e) {
    }
      this.savePedido(pedido);    
      Item_PedidoFacade itemPedidoFacade = new Item_PedidoFacade();
      itemPedidoFacade.criaItem_Pedido((ArrayList) itemPedido);
      HibernateUtil.commitTransaction();
 }
O Método criaItem_Pedido:
public String criaItem_Pedido(ArrayList[] itemPedido){
        saveItem_Pedido((ArrayList[]) itemPedido);
            return "item_pedido_criado";
    }
O método saveItem_Pedido:

public void saveItem_Pedido(ArrayList[] itemPedido) { try{ HibernateUtil.beginTransaction(); Session session = HibernateUtil.currentSession(); for(int i =0; i < itemPedido.length; i++){ session.save((ArrayList[]) itemPedido); HibernateUtil.commitTransaction(); addMessage("Insert Item_Pedido Ok."); } }catch(HibernateException e){ //addMessage("Erro insert Item_Pedido!"); throw e; }finally{HibernateUtil.closeSession();} }

O pedido, grava normalmente, mas ao tentar gravar o item_pedido, me traz o seguinte stackTrace:
2007-09-14 09:57:47,765 [http-8084-Processor23] ERROR com.sun.faces.lifecycle.InvokeApplicationPhase - java.lang.NoSuchMethodError: beans.Item_PedidoFacade.criaItem_Pedido(Ljava/util/ArrayList;)Ljava/lang/String;
javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: beans.Item_PedidoFacade.criaItem_Pedido(Ljava/util/ArrayList;)Ljava/lang/String;
	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)
	at javax.faces.component.UICommand.broadcast(UICommand.java:305)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at util.Filtro.doFilter(Filtro.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoSuchMethodError: beans.Item_PedidoFacade.criaItem_Pedido(Ljava/util/ArrayList;)Ljava/lang/String;
	at beans.PedidoFacade.CriaPedido(PedidoFacade.java:96)
	at loja.AppActionListener.processAction(AppActionListener.java:80)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
	... 27 more
2007-09-14 09:57:47,781 [http-8084-Processor23] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/svo].[Faces Servlet] - Servlet.service() for servlet Faces Servlet threw exception
javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: beans.Item_PedidoFacade.criaItem_Pedido(Ljava/util/ArrayList;)Ljava/lang/String;
	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)
	at javax.faces.component.UICommand.broadcast(UICommand.java:305)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at util.Filtro.doFilter(Filtro.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoSuchMethodError: beans.Item_PedidoFacade.criaItem_Pedido(Ljava/util/ArrayList;)Ljava/lang/String;
	at beans.PedidoFacade.CriaPedido(PedidoFacade.java:96)
	at loja.AppActionListener.processAction(AppActionListener.java:80)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
	... 27 more

Se puderem me ajudar, agradeço.[/quote]

7 Respostas

M

Opa,

O metodo save não salva vários objetos de uma vez, você tem que salvar item por item.

:okok:

J

Bom dia Marcos!!

Valeu pela grande ajuda que tem me dado, mas como mudo a essa forma de gravação??

Abraço

J

Marcos se ajudar, estou colocando a pilha de exceções:

javax.servlet.ServletException: java.lang.ClassCastException: java.util.AbstractList$Itr
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)
	util.Filtro.doFilter(Filtro.java:30)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)


root cause 

javax.faces.el.EvaluationException: java.lang.ClassCastException: java.util.AbstractList$Itr
	com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)
	javax.faces.component.UICommand.broadcast(UICommand.java:305)
	javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
	javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	util.Filtro.doFilter(Filtro.java:30)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
M

O que você fez que gera esta exceção? Bom não está dando para saber o onde está gerando este erro de conversão, você poderia postar o código que você acha que está gerando este erro?

:okok:

J

Seguinte, preencho o ArrayList nesse método:

public synchronized void CriaPedido(Pedido pedido,
        CarrinhoCompra carrinhoCompra, Correntista cfAux) {
        pedido.setCorrentista(cfAux);
        Status_PedidoFacade statusPedidoFacade = new Status_PedidoFacade();
        pedido.setStatus_pedido(statusPedidoFacade.findByDescricao("aberto"));
        pedido.setValor_total(carrinhoCompra.getValor_total_item());
        ArrayList item_pedido = new ArrayList(); 
      this.savePedido(pedido);    
      Item_PedidoFacade itemPedidoFacade = new Item_PedidoFacade();
        try {
         HibernateUtil.beginTransaction(); 
         Session session = HibernateUtil.currentSession();
         Iterator itensCompra = carrinhoCompra.getItensCompra().iterator();
            while (itensCompra.hasNext()) {
             item_pedido.add(itensCompra);
             Item_Pedido item = (Item_Pedido) itensCompra.next();
             ProdutoFacade produtoFacade = new ProdutoFacade();
             item.setProduto(produtoFacade.findByCodProd(item.getCod_prod()));
             item.setPedido_item(pedido);
             item.setQuantidade(item.getQuantidade());
             item.setValor_item(item.getValor_item());
             item.setValor_total_item(carrinhoCompra.getValor_total_item());
            }
        }
    catch (Exception e) {
    }
      HibernateUtil.commitTransaction();
      itemPedidoFacade.criaItem_Pedido(item_pedido);
 }

Normal, grava o pedido e o itemPedido, produto, e Pedido vão preenchidos para a classe Item_PedidoFacade, que fara a persisencia do item_pedido.
No Item_PedidoFacade:

public String criaItem_Pedido(ArrayList item_pedido){
        saveItem_Pedido((ArrayList) item_pedido);
        return"item_pedido_criado";
    }

e o Método que faz(faria) a gravação do Item_Pedido:

public void saveItem_Pedido(AbstractList itemPedido) {
        HibernateUtil.beginTransaction();
        Session session = HibernateUtil.currentSession();
        try{
        /*    for(int i =0; i < itemPedido.size(); i++){
                Item_Pedido itemDoPedido = (Item_Pedido) itemPedido.get(i);
                session.save(itemDoPedido);
                HibernateUtil.commitTransaction();*/
            Iterator i = itemPedido.iterator();
            int in = 0;
            while(i.hasNext()){
                
                Object ent = new Object();
                ent = i.next();
                
                session.save(ent);

            addMessage("Insert Item_Pedido Ok.");
            }
        }catch(HibernateException e){throw e/*System.out.println("erro em destroy")*/;
        }
    }

Estou usando o AbstractList como uma tentativa de acertar a exceção, mas não resolveu, agora , a exeção é:

2007-09-17 16:43:20,296 [http-8084-Processor25] ERROR com.sun.faces.lifecycle.InvokeApplicationPhase - org.hibernate.MappingException: Unknown entity: java.util.AbstractList$Itr
javax.faces.el.EvaluationException: org.hibernate.MappingException: Unknown entity: java.util.AbstractList$Itr
	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)
	at javax.faces.component.UICommand.broadcast(UICommand.java:305)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at util.Filtro.doFilter(Filtro.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: org.hibernate.MappingException: Unknown entity: java.util.AbstractList$Itr
	at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:548)
	at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:96)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
	at beans.Item_PedidoFacade.saveItem_Pedido(Item_PedidoFacade.java:48)
	at beans.Item_PedidoFacade.criaItem_Pedido(Item_PedidoFacade.java:92)
	at beans.PedidoFacade.CriaPedido(PedidoFacade.java:100)
	at loja.AppActionListener.processAction(AppActionListener.java:80)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
	... 27 more
2007-09-17 16:43:24,531 [http-8084-Processor25] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/svo].[Faces Servlet] - Servlet.service() for servlet Faces Servlet threw exception
javax.faces.el.EvaluationException: org.hibernate.MappingException: Unknown entity: java.util.AbstractList$Itr
	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)
	at javax.faces.component.UICommand.broadcast(UICommand.java:305)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at util.Filtro.doFilter(Filtro.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: org.hibernate.MappingException: Unknown entity: java.util.AbstractList$Itr
	at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:548)
	at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:96)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
	at beans.Item_PedidoFacade.saveItem_Pedido(Item_PedidoFacade.java:48)
	at beans.Item_PedidoFacade.criaItem_Pedido(Item_PedidoFacade.java:92)
	at beans.PedidoFacade.CriaPedido(PedidoFacade.java:100)
	at loja.AppActionListener.processAction(AppActionListener.java:80)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
	... 27 more

Parece que é erro de mapeamento mas não tenho a menor ideia do que pode ser, em todo caso, o mapeamento do pedido, e item_pedido:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="beans.Pedido" 
           table="pedido" 
           catalog="svo2">
     <id name="cod_pedido" type="java.lang.Integer">
         <column name="cod_pedido" />
         <generator class="native" />
     </id>
     <property name="valor_total" type="java.lang.Float">
       <column name="valor_total" length="15" />
     </property>

     <set name="item_pedido"
	  inverse="true"
	  cascade="all-delete-orphan">
          <key column="cod_item_pedido"/>
          <one-to-many class="beans.Item_Pedido"/>
     </set>
 
     <!-- coluna cod_corr vai em pedido -->
     
     <many-to-one
        name="correntista"
        column="cod_corr"
        class="beans.Correntista"/>   

     <many-to-one
          name="status_pedido"
          column="cod_status"
          class="beans.Status_Pedido"/>          

     <set name="entrega_pedido"
	  inverse="true">
          <key column="cod_entrega"/>
          <one-to-many class="beans.Entrega"/>
     </set>
          
     <set name="fatura"
	  inverse="true">
          <key column="cod_pedido"/>
          <one-to-many class="beans.Fatura"/>
     </set>      
      
 </class>
</hibernate-mapping>


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="beans.Item_Pedido" 
           table="item_pedido" 
           catalog="svo2">
     <id name="cod_item_pedido" type="java.lang.Integer">
         <column name="cod_item_pedido" />
         <generator class="native" />
     </id>
     <property name="quantidade" type="java.lang.Integer">
       <column name="qtde" length="15" />
     </property>
     
     <property name="valor_total_item" type="java.lang.Float">
       <column name="valor_total_item" length="15"/>
     </property>

     <many-to-one
          name="produto"
          column="cod_prod"
          class="beans.Produto"/> 

     <many-to-one
          name="pedido_item"
          column="cod_pedido"
          class="beans.Pedido"/> 
          
          
 </class>
</hibernate-mapping>

Valeu

M

Opa,

Tente usar java.util.List ao invés AbstractList. Se não for usar Annotations, neste caso é melhor usar java.util.Set, porque você tem que declarar um índice para sua lista no xml que determina a posição, e na maioria das vezes sempre gera problemas.

:okok:

J

Oi Marcos!!

E como faço isso??

Criado 14 de setembro de 2007
Ultima resposta 18 de set. de 2007
Respostas 7
Participantes 2