Olá pessoal.
Estou usando o Java 8 e Hibernate Core versão 5.3.3. Nas minhas consultas, usando o Criteria, acusa como “deprecation”, mas mesmo assim ainda consigo realizar as consultas no BD sem problemas, ´so fica aparecendo WARN sobre isso. Minha consulta:
@SuppressWarnings({ “deprecation”, “unchecked” })
public List listar() {
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session sessao = factory.openSession();
try {
Criteria consulta = sessao.createCriteria(classe);
List<Entidade> resultado = consulta.list();
return resultado;
} catch (RuntimeException erro) {
throw erro;
} finally {
sessao.close();
}
}
Criei um novo método, onde tenho que realizar uma consulta específica, passando parametros, porém não apresenta as informações no console, somente um WARN:
out 03, 2018 3:41:00 PM org.hibernate.internal.SessionImpl createCriteria
WARN: HHH90000022: Hibernate’s legacy org.hibernate.Criteria API is deprecated; use the JPA javax.persistence.criteria.CriteriaQuery instead
Minha consulta:
package br.com.teste.dao;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Restrictions;
import br.com.teste.domain.Usuario;
public class UsuarioDAO extends GenericDAO{
public Usuario autenticar(String cpf, String senha) {
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
try {
@SuppressWarnings("deprecation")
Criteria consulta = session.createCriteria(Usuario.class);
consulta.createAlias("usuario", "p");
consulta.add(Restrictions.eqOrIsNull("p.cpf", cpf));
SimpleHash hash = new SimpleHash("md5",senha);
consulta.add(Restrictions.eq("senha", hash.toHex()));
Usuario resultado = (Usuario) consulta.uniqueResult();
return resultado;
} catch (RuntimeException erro) {
throw erro;
} finally {
session.close();
}
}
}
Como usar o List sem o Criteria e como corrigir o problema da mensagem: out 03, 2018 3:41:00 PM org.hibernate.internal.SessionImpl createCriteria
WARN: HHH90000022: Hibernate’s legacy org.hibernate.Criteria API is deprecated; use the JPA javax.persistence.criteria.CriteriaQuery instead