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
[code]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© from tela as c");
return q.getResultList();}
finally{
em.close();
}
}}[/code]
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 ></br>
Tela: <h:inputText value="#{clienteControler.cliente.tela}"/><br ></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>