JPA, método CriteriaBuilder não existe no EntityManager?

3 respostas
W

Pessoal, estou fazendo uns exercícios de uma apostila da Caelum, estou fazendo exatamente como está na apostila, mas não está dando certo, vejam o erro abaixo.
Será que falta algum jar ou importei errado?
Obrigado.

Classe JPAUtil está OK.
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAUtil {

	private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("notas");
	
	public EntityManager getEntityManager(){
		return emf.createEntityManager();
	}	
}
Classe DAO
import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaQuery;

public class DAO<T> {

	private final Class<T> classe;
	
	public DAO(Class<T> classe){
		this.classe = classe;
	}
//outros métodos OK
         .
         .
         .
public List<T> listaTodos(){
		EntityManager em = new JPAUtil().getEntityManager();
		CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(classe); //-->The method getCriteriaBuilder() is undefined for the type EntityManager
				
		List<T> lista = em.createQuery(query).getResultList();
		em.close();
		return lista;
	}

3 Respostas

dev.rafael

Que versão do JPA vc está utilizando?

A

Pode ser pq vc está usando a versão 1 do JPA, q este método não existe, veja a documentação:

http://download.oracle.com/javaee/5/api/javax/persistence/EntityManager.html

W

Eu estava usando a distribuição hibernate-distribution-3.6.0.CR1, baixei e usei os jars da distribuição hibernate-distribution-3.6.0.Final e funcionou.
http://sourceforge.net/projects/hibernate/files/hibernate3/

Obrigado pelas dicas.

Criado 24 de novembro de 2010
Ultima resposta 24 de nov. de 2010
Respostas 3
Participantes 3