Para gravar, dá erro de transação

Java

04/05/2011

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: <h:inputText value="#{clienteControler.cliente.idtela}"/><br clear="all"></br>
        Tela: <h:inputText value="#{clienteControler.cliente.tela}"/><br clear="all"></br>
        <h:commandButton value="Enviar" 
            action="#{clienteControler.salvar}"/>
    </h:form>
 </body>
 </html>

meu faces-conf
<managed-bean>
        <managed-bean-name>clienteControler</managed-bean-name>
        <managed-bean-class>br.com.mosaicodigital.teste.ClienteControler</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>


Pjava

Pjava

Curtidas 0

Respostas

Davi Costa

Davi Costa

04/05/2011

Paulo posta o stack trace que vai ficar mais fácil de visualizarmos o que aconteceu.

Att Davi
GOSTEI 0
Pjava

Pjava

04/05/2011

Bem, eu vi o log do server e pelo log, eu percebi que o nome do banco estava errado, ou seja, estava escrito em minusculo e o nome dele era maiuscula. Corrigi isso e agora não me dá mais nenhum erro, mas nção grava nada no banco. Esse é só um teste para saber se estou mesmo logado no banco. O que realmente quero é listar na página, todas as escolas e isso não estou conseguindo.
GOSTEI 0
Pjava

Pjava

04/05/2011

Meu método estava chamando a DAO errada. Já resolvido.
GOSTEI 0
Davi Costa

Davi Costa

04/05/2011

Show de Bola , o que precisar é só avisar...
final de semana queimar pestana com hql e criteria


Att Davi
GOSTEI 0
Davi Costa

Davi Costa

04/05/2011

Assim que possível fechar pendência.

Abcs

Att Davi
GOSTEI 0
POSTAR