Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Hibernate - Busca

public class BuscarConta {
    public static void main(String[] args) {

        EntityManager em = new JPAUtil().getEntityManager();        
        em.getTransaction().begin();        

        Conta conta = em.find(Conta.class,2);

            System.out.println("Nome : "+conta.getTitular());

        em.getTransaction().commit();
        em.close();


    }

}

Bom dia Alureiros, No código acima estou pesquisando por id, caso eu queira pesquisar por outro campo, tipo titular. Como eu faria???

4 respostas

Oi Luciano! Bom dia!

Existem diversas maneiras.

1) JPQL

Essa abordagem permite buscar tarefas passando parametros de pesquisa por HQL/JPQL.

 package br.com.caelum.tarefas.jpa; 

     import javax.persistence.Query;
     // outros imports omitidos

     public class BuscaTarefas {

         public static void main(String[] args) {

             EntityManagerFactory factory = Persistence.
                     createEntityManagerFactory("tarefas");
                 EntityManager manager = factory.createEntityManager();

             //cuidado, use o import javax.persistence.Query
             Query query = manager
                     .createQuery("select t from Tarefa as t "+
                         "where t.finalizado = :paramFinalizado");
             query.setParameter("paramFinalizado", true);

             List<Tarefa> lista = query.getResultList();

             for (Tarefa t : lista) {
                 System.out.println(t.getDescricao());
             }

             manager.close();
         }
     }

2) Example

No cenário abaixo ele vai buscar os restaurantes com o nome Pico, no endereço Vergueiro que sirvam comida contemporânea.

// Objeto restaurante populado, mas poderia vir direto do request pelo seu
// framework MVC
Restaurante restaurante = new Restaurante();
restaurante.setNome("Pico");
restaurante.setEndereco("Vergueiro");

TipoDeComida tipo = new TipoDeComida();
tipo.setNome("Contemporânea");

restaurante.setTipoDeComida(tipo);

// Query sendo feita
Example example = Example.create(restaurante);
List<Restaurante> restaurantes = s.createCriteria(Restaurante.class)
    .add(example).list();

Espero ter ajudado,

Abraço e sucesso,

Rodrigo

Muito Obrigado Rodrigo Portela, Você possui alguma indicação de livro que ensine sobre JPQL?

solução!

Oi Luciano!

Sendo-lhe muito honesto, ultimamente tenho fugido de livros, sejam papel ou online.

Seguem alguns links interessantes para quem quer conhecer mais, contudo em inglês.

https://thoughts-on-java.org/jpql/

https://www.objectdb.com/java/jpa/query/jpql/select

Abraço,

Rodrigo

Muito obrigado pela ajuda

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software