[RESOLVIDO]Como instanciar JPA Controller no Netbeans 7.0.1?

8 respostas
Resplandes

Bom Dia amigos do guj, então estou com um problema ao instanciar uma classe de controle"ClasseDao" no netbeans 7.0.1
eu utilizava a versão 6.8 e não encontrava problemas, houver mudança na versão 7.0.1 no qual não entendo se os colegas poderem me ajugar agradeço desde agora.

//classe de Controle "ClasseDao"


package dao;

import bean.Fornecedor;
import dao.exceptions.NonexistentEntityException;
import java.io.Serializable;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;
import javax.persistence.EntityNotFoundException;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import bean.Produto;
import java.util.ArrayList;
import java.util.List;


public class FornecedorJpaController implements Serializable {

     public FornecedorJpaController(EntityManagerFactory emf) {   
        this.emf = emf;   
    }   
 
    private EntityManagerFactory emf = null; 


    public EntityManager getEntityManager() {
        return emf.createEntityManager();
    }

    public void create(Fornecedor fornecedor) {
        if (fornecedor.getProdutoList() == null) {
            fornecedor.setProdutoList(new ArrayList<Produto>());
        }
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            List<Produto> attachedProdutoList = new ArrayList<Produto>();
            for (Produto produtoListProdutoToAttach : fornecedor.getProdutoList()) {
                produtoListProdutoToAttach = em.getReference(produtoListProdutoToAttach.getClass(), produtoListProdutoToAttach.getIdproduto());
                attachedProdutoList.add(produtoListProdutoToAttach);
            }
            fornecedor.setProdutoList(attachedProdutoList);
            em.persist(fornecedor);
            for (Produto produtoListProduto : fornecedor.getProdutoList()) {
                Fornecedor oldIdfornecedorOfProdutoListProduto = produtoListProduto.getIdfornecedor();
                produtoListProduto.setIdfornecedor(fornecedor);
                produtoListProduto = em.merge(produtoListProduto);
                if (oldIdfornecedorOfProdutoListProduto != null) {
                    oldIdfornecedorOfProdutoListProduto.getProdutoList().remove(produtoListProduto);
                    oldIdfornecedorOfProdutoListProduto = em.merge(oldIdfornecedorOfProdutoListProduto);
                }
            }
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

    public void edit(Fornecedor fornecedor) throws NonexistentEntityException, Exception {
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Fornecedor persistentFornecedor = em.find(Fornecedor.class, fornecedor.getId());
            List<Produto> produtoListOld = persistentFornecedor.getProdutoList();
            List<Produto> produtoListNew = fornecedor.getProdutoList();
            List<Produto> attachedProdutoListNew = new ArrayList<Produto>();
            for (Produto produtoListNewProdutoToAttach : produtoListNew) {
                produtoListNewProdutoToAttach = em.getReference(produtoListNewProdutoToAttach.getClass(), produtoListNewProdutoToAttach.getIdproduto());
                attachedProdutoListNew.add(produtoListNewProdutoToAttach);
            }
            produtoListNew = attachedProdutoListNew;
            fornecedor.setProdutoList(produtoListNew);
            fornecedor = em.merge(fornecedor);
            for (Produto produtoListOldProduto : produtoListOld) {
                if (!produtoListNew.contains(produtoListOldProduto)) {
                    produtoListOldProduto.setIdfornecedor(null);
                    produtoListOldProduto = em.merge(produtoListOldProduto);
                }
            }
            for (Produto produtoListNewProduto : produtoListNew) {
                if (!produtoListOld.contains(produtoListNewProduto)) {
                    Fornecedor oldIdfornecedorOfProdutoListNewProduto = produtoListNewProduto.getIdfornecedor();
                    produtoListNewProduto.setIdfornecedor(fornecedor);
                    produtoListNewProduto = em.merge(produtoListNewProduto);
                    if (oldIdfornecedorOfProdutoListNewProduto != null && !oldIdfornecedorOfProdutoListNewProduto.equals(fornecedor)) {
                        oldIdfornecedorOfProdutoListNewProduto.getProdutoList().remove(produtoListNewProduto);
                        oldIdfornecedorOfProdutoListNewProduto = em.merge(oldIdfornecedorOfProdutoListNewProduto);
                    }
                }
            }
            em.getTransaction().commit();
        } catch (Exception ex) {
            String msg = ex.getLocalizedMessage();
            if (msg == null || msg.length() == 0) {
                Integer id = fornecedor.getId();
                if (findFornecedor(id) == null) {
                    throw new NonexistentEntityException("The fornecedor with id " + id + " no longer exists.");
                }
            }
            throw ex;
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

    public void destroy(Integer id) throws NonexistentEntityException {
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Fornecedor fornecedor;
            try {
                fornecedor = em.getReference(Fornecedor.class, id);
                fornecedor.getId();
            } catch (EntityNotFoundException enfe) {
                throw new NonexistentEntityException("The fornecedor with id " + id + " no longer exists.", enfe);
            }
            List<Produto> produtoList = fornecedor.getProdutoList();
            for (Produto produtoListProduto : produtoList) {
                produtoListProduto.setIdfornecedor(null);
                produtoListProduto = em.merge(produtoListProduto);
            }
            em.remove(fornecedor);
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

    public List<Fornecedor> findFornecedorEntities() {
        return findFornecedorEntities(true, -1, -1);
    }

    public List<Fornecedor> findFornecedorEntities(int maxResults, int firstResult) {
        return findFornecedorEntities(false, maxResults, firstResult);
    }

    private List<Fornecedor> findFornecedorEntities(boolean all, int maxResults, int firstResult) {
        EntityManager em = getEntityManager();
        try {
            CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
            cq.select(cq.from(Fornecedor.class));
            Query q = em.createQuery(cq);
            if (!all) {
                q.setMaxResults(maxResults);
                q.setFirstResult(firstResult);
            }
            return q.getResultList();
        } finally {
            em.close();
        }
    }

    public Fornecedor findFornecedor(Integer id) {
        EntityManager em = getEntityManager();
        try {
            return em.find(Fornecedor.class, id);
        } finally {
            em.close();
        }
    }

    public int getFornecedorCount() {
        EntityManager em = getEntityManager();
        try {
            CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
            Root<Fornecedor> rt = cq.from(Fornecedor.class);
            cq.select(em.getCriteriaBuilder().count(rt));
            Query q = em.createQuery(cq);
            return ((Long) q.getSingleResult()).intValue();
        } finally {
            em.close();
        }
    }
    
}
package view;

import bean.Fornecedor;
import dao.FornecedorJpaController;
import javax.persistence.PersistenceUtil;

public class NewMain {

    public static void main(String[] args) {
        //instanciado o objeto
        Fornecedor f = new Fornecedor();
        //instancia da Classe JPA Controller "ClasseDao"
        FornecedorJpaController dao =  new FornecedorJpaController(Persistence.createEntityManagerFactory("HibernateUP"));
        f.setNome("Godo");
        dao.create(f);
    }
}
//esse e o erro q o netbeans manda
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named HibernateUP
	at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
	at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
	at view.NewMain.main(NewMain.java:15)
Java Result: 1

8 Respostas

joede.fadel

Não mudou nada de uma versão para outro. Se você faz um código no netbeans 6.8 e outro no 7.0.1, em ambos era para funcionar, o que pode ter ocorrido é de você ter alguma coisa configurada na versão antiga e não ter no novo, O erro que está ocorrendo é que ele não está encontrando sua unidade de persistencia, verifique se ela está criada corretamente.

Resplandes

Entao Joede esta sim

olha ela ai

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="HibernatePU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>bean.Produto</class>
    <class>bean.Fornecedor</class>
    <properties>
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.connection.password" value="mysql_server"/>
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/hibernate"/>
    </properties>
  </persistence-unit>
</persistence>

e assim esse projeto eu crie todo na versão 7
eu fiz o mesmo na versao 6.8 e funcionou mas na versao 6.8 eu faço a instancia desta forma

FornecedorJpaController dao =  new FornecedorJpaController();

e funcionar normalmente

Resplandes

Amigos me ajudem se poderem

pacscam

Olá amigo já estive esses problemas quando mudei do 6.8 pro 7.1
talvez vc tenha que adicionar este construtor na sua controller faz o teste.

public FornecedorJpaController() {
        emf = Persistence.createEntityManagerFactory("HibernateUP");
    }
Resplandes

Ótimo Paulo vou testar e posto aqui o resultado
obrigado

Resplandes

O erro continua mesmo depois de ter colocado o metodo construtor que o Paulo Indicou

//erro
run:
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named HibernatePU
	at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
	at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
	at view.NewMain.main(NewMain.java:15)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

Classe Controller

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import bean.Fornecedor;
import dao.exceptions.NonexistentEntityException;
import java.io.Serializable;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;
import javax.persistence.EntityNotFoundException;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import bean.Produto;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Persistence;


public class FornecedorJpaController implements Serializable {

    public FornecedorJpaController(EntityManagerFactory emf) {
        this.emf = emf;
    }
    public FornecedorJpaController() {  
        emf = Persistence.createEntityManagerFactory("HibernatePU");  
    } 
    private EntityManagerFactory emf = null;

    public EntityManager getEntityManager() {
        return emf.createEntityManager();
    }

    public void create(Fornecedor fornecedor) {
        if (fornecedor.getProdutoList() == null) {
            fornecedor.setProdutoList(new ArrayList<Produto>());
        }
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            List<Produto> attachedProdutoList = new ArrayList<Produto>();
            for (Produto produtoListProdutoToAttach : fornecedor.getProdutoList()) {
                produtoListProdutoToAttach = em.getReference(produtoListProdutoToAttach.getClass(), produtoListProdutoToAttach.getIdproduto());
                attachedProdutoList.add(produtoListProdutoToAttach);
            }
            fornecedor.setProdutoList(attachedProdutoList);
            em.persist(fornecedor);
            for (Produto produtoListProduto : fornecedor.getProdutoList()) {
                Fornecedor oldIdfornecedorOfProdutoListProduto = produtoListProduto.getIdfornecedor();
                produtoListProduto.setIdfornecedor(fornecedor);
                produtoListProduto = em.merge(produtoListProduto);
                if (oldIdfornecedorOfProdutoListProduto != null) {
                    oldIdfornecedorOfProdutoListProduto.getProdutoList().remove(produtoListProduto);
                    oldIdfornecedorOfProdutoListProduto = em.merge(oldIdfornecedorOfProdutoListProduto);
                }
            }
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

    public void edit(Fornecedor fornecedor) throws NonexistentEntityException, Exception {
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Fornecedor persistentFornecedor = em.find(Fornecedor.class, fornecedor.getId());
            List<Produto> produtoListOld = persistentFornecedor.getProdutoList();
            List<Produto> produtoListNew = fornecedor.getProdutoList();
            List<Produto> attachedProdutoListNew = new ArrayList<Produto>();
            for (Produto produtoListNewProdutoToAttach : produtoListNew) {
                produtoListNewProdutoToAttach = em.getReference(produtoListNewProdutoToAttach.getClass(), produtoListNewProdutoToAttach.getIdproduto());
                attachedProdutoListNew.add(produtoListNewProdutoToAttach);
            }
            produtoListNew = attachedProdutoListNew;
            fornecedor.setProdutoList(produtoListNew);
            fornecedor = em.merge(fornecedor);
            for (Produto produtoListOldProduto : produtoListOld) {
                if (!produtoListNew.contains(produtoListOldProduto)) {
                    produtoListOldProduto.setIdfornecedor(null);
                    produtoListOldProduto = em.merge(produtoListOldProduto);
                }
            }
            for (Produto produtoListNewProduto : produtoListNew) {
                if (!produtoListOld.contains(produtoListNewProduto)) {
                    Fornecedor oldIdfornecedorOfProdutoListNewProduto = produtoListNewProduto.getIdfornecedor();
                    produtoListNewProduto.setIdfornecedor(fornecedor);
                    produtoListNewProduto = em.merge(produtoListNewProduto);
                    if (oldIdfornecedorOfProdutoListNewProduto != null && !oldIdfornecedorOfProdutoListNewProduto.equals(fornecedor)) {
                        oldIdfornecedorOfProdutoListNewProduto.getProdutoList().remove(produtoListNewProduto);
                        oldIdfornecedorOfProdutoListNewProduto = em.merge(oldIdfornecedorOfProdutoListNewProduto);
                    }
                }
            }
            em.getTransaction().commit();
        } catch (Exception ex) {
            String msg = ex.getLocalizedMessage();
            if (msg == null || msg.length() == 0) {
                Integer id = fornecedor.getId();
                if (findFornecedor(id) == null) {
                    throw new NonexistentEntityException("The fornecedor with id " + id + " no longer exists.");
                }
            }
            throw ex;
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

    public void destroy(Integer id) throws NonexistentEntityException {
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Fornecedor fornecedor;
            try {
                fornecedor = em.getReference(Fornecedor.class, id);
                fornecedor.getId();
            } catch (EntityNotFoundException enfe) {
                throw new NonexistentEntityException("The fornecedor with id " + id + " no longer exists.", enfe);
            }
            List<Produto> produtoList = fornecedor.getProdutoList();
            for (Produto produtoListProduto : produtoList) {
                produtoListProduto.setIdfornecedor(null);
                produtoListProduto = em.merge(produtoListProduto);
            }
            em.remove(fornecedor);
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

    public List<Fornecedor> findFornecedorEntities() {
        return findFornecedorEntities(true, -1, -1);
    }

    public List<Fornecedor> findFornecedorEntities(int maxResults, int firstResult) {
        return findFornecedorEntities(false, maxResults, firstResult);
    }

    private List<Fornecedor> findFornecedorEntities(boolean all, int maxResults, int firstResult) {
        EntityManager em = getEntityManager();
        try {
            CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
            cq.select(cq.from(Fornecedor.class));
            Query q = em.createQuery(cq);
            if (!all) {
                q.setMaxResults(maxResults);
                q.setFirstResult(firstResult);
            }
            return q.getResultList();
        } finally {
            em.close();
        }
    }

    public Fornecedor findFornecedor(Integer id) {
        EntityManager em = getEntityManager();
        try {
            return em.find(Fornecedor.class, id);
        } finally {
            em.close();
        }
    }

    public int getFornecedorCount() {
        EntityManager em = getEntityManager();
        try {
            CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
            Root<Fornecedor> rt = cq.from(Fornecedor.class);
            cq.select(em.getCriteriaBuilder().count(rt));
            Query q = em.createQuery(cq);
            return ((Long) q.getSingleResult()).intValue();
        } finally {
            em.close();
        }
    }
    
}
Resplandes

Alguem pode ajudar um amigo nessa hora kkkk,
amigos isso vai me deixar maluco e não encontro o erro, aguardando ajuda de vcs

Resplandes

Amigos resolvi meu problema, não tinha o arquivo de configuração do hibernate adcionei ele na raiz do meu projeto e deu certo
o porque disse eu não sei, por que no netbeans 6.8 so prescisava do arquivo persistence.xml
agora meu projeto possui o persistence.xml e o hibernate.cfg.xml

Criado 21 de outubro de 2011
Ultima resposta 21 de out. de 2011
Respostas 8
Participantes 3