Metodos deprecated hibernate 5.2

qual é a saida para os metodos deprecados de pesquisa no hibernate 5.2?

estou usando um metodo para listar todos registros, e um para pesquisa especifica, e os dois estão deprecados, como eu poderia contornar essa situação?

metodo para listar todos:
@SuppressWarnings(“unchecked”)
@Override
public List listAll() {
List customers = new ArrayList();
Session session = sessionFacotry.openSession();
session.beginTransaction();
try {
customers = session.createQuery(“from Customer”).list();
} catch (RuntimeException e) {
e.printStackTrace();
} finally {
session.flush();
session.close();
}
return customers;
}

metodo para pesquisar um:
@SuppressWarnings({ “unchecked”, “deprecation” })
public Customer getCustomerByCpf(Long cpf) {
Customer customer = new Customer();
Session session = sessionFacotry.openSession();
session.beginTransaction();
try {
String queryString = “from Customer where cpf = :cpf”;
Query query = session.createQuery(queryString).setLong(“cpf”, cpf);
customer = (Customer) query.uniqueResult();
} catch (RuntimeException e) {
e.printStackTrace();
} finally {
session.flush();
session.close();
}
return customer;
}

Estes métodos estão sendo depreciados pois o hibernate pretende, apenas, atender ao que a especificação JPA oferece.
Neste momento eles continuarão funcionando, mas, o ideal é que você passe a utilizar os padrões da especificação.

tava dando uma pesquisa nisso, e achei esse tutorial
https://www.boraji.com/spring-mvc-4-hibernate-5-restful-crud-operations-example
ele mostra exemplo capturando um objeto pelo id, mas eu queria pegar pelo cpf, tentei com o codigo abaixo mas ele nao encontrou, deu null pointer exception, e se eu coloco o id ele encontra, teria como eu pesquisar pelo cpf?

codigo:
public Customer getCustomerByCpf(Long cpf) {
return sessionFacotry.openSession().get(Customer.class, cpf);
}

O método get vai obter uma instância específica da classe passada como argumento, de acordo com sua chave primária, que, no caso, não é o cpf.
Por quê não tenta com HQL?

String jpql = "FROM Customer c WHERE c.cpf = :cpf";
List result = session.createQuery(hql)
.setString("cpf", "123.456.789-00")
.list();

Deve funcionar.

mas assim ele acaba ficando deprecado…gostaria de usar os novos jeitos já…

Ola Mateus ! Eu tive recentemente o mesmo problema que você e pesquisei um bocado para tirar todos estes “deprecated”. Sugiro que dê uma olhada na documentação do hibernate 5.2.x, pois ali terá uma série de exemplos de “Queries”, podendo usar sem nenhum problema, o HQL, SQL, Criteria, etc.

Uma dica, preste atenção nos imports, pois podem ter problemas semelhantes aos deprecated do JSF. (Ex. ViewScoped do javax.faces.view ou javax.faces.view).