Erro de transação não ativa

1 resposta
P
Diz o erro de transação não ativa. Veja esse exemplo e porque não funciona.
public class  DAOTeste {
           private EntityManagerFactory emf;  
  public EntityManager getEntityManager(){                      
  return emf.createEntityManager();           }         
  public  DAOTeste() {                                        
  emf  = Persistence.createEntityManagerFactory("puMosaicoDigital");        
 }
}
Meu Controler
public class ClienteControler  {         
  private  Cliente cliente;          
  private DataModel model;         
  public ClienteControler()  {                    
    cliente =  new Cliente();          
  }
  public  Cliente getCliente() {                     
  return cliente;           }         
  public  void setCliente(Cliente cliente)  {                    
   this.cliente =  cliente;          }
           public String  salvar(){                    
           ClienteDAO clientedao  = new ClienteDAO();                               
           clientedao.salvar(cliente);                    
           return "salvar";           }         
           public  DataModel getTodos(){                               
           ClienteDAO clientedao  = new ClienteDAO();                              
           model  = new ListDataModel(clientedao.exibir());                     
           return model;          
}
           }
Meu ClienteDAO
public class ClienteDAO  extends DAOTeste {
           public void  salvar(Cliente cliente){                   
       //obtendo  o EntityManager                    
          EntityManager  em = getEntityManager();                     
          try{                               
             //inicia o processo  de transacao                               
             em.getTransaction().begin();                               
            //faz a  persistencia                               
            em.persist(cliente);                               
           //manda bala para  o BD                               
           em.getTransaction().commit();                    
         }catch  (Exception e) {                               
          //se  der algo de  errado vem parar  aqui, onde eh  cancelado                               
          em.getTransaction().rollback();                     }           }
          public  List exibir(){                    
              EntityManager  em = getEntityManager();                     
               try{                               
                    Query q =  em.createQuery("select object(c) from  tela as c");
                     
                   return q.getResultList();}                    
              finally{                               
              em.close();                     
            }         
  }}
Meu facelet
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:h="http://java.sun.com/jsf/html"
 xmlns:f="http://java.sun.com/jsf/core">
 <body>
    <h:form>
        Id: &lt;h:inputText value="#{clienteControler.cliente.idtela}"/&gt;<br ></br>
        Tela: &lt;h:inputText value="#{clienteControler.cliente.tela}"/&gt;<br ></br>
        &lt;h:commandButton value="Enviar"
            action="#{clienteControler.salvar}"/&gt;
    &lt;/h:form&gt;
 &lt;/body&gt;
 &lt;/html&gt;
meu faces-conf
&lt;managed-bean&gt;
        &lt;managed-bean-name&gt;clienteControler&lt;/managed-bean-name&gt;
        &lt;managed-bean-class&gt;br.com.mosaicodigital.teste.ClienteControler&lt;/managed-bean-class&gt;
        &lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt;
    &lt;/managed-bean&gt;

1 Resposta

luxu

posta o erro tb…

Criado 4 de maio de 2011
Ultima resposta 5 de mai. de 2011
Respostas 1
Participantes 2