Olá desenvolvedores, com o framework Hibernate nós já aprendemos a salvar, consultar atualizar e deletar dados, agora é hora de aprendermos a trazer todos os dados e exibi-los em uma lista.

Como os dados consultados deverão ser exibidos em uma lista a assinatura do método listar() contempla a declaração de uma lista. Como parâmetro o método recebe a entidade que será consultada.

O escopo do método receberá a transação (transaction) instanciada.  O transaction é o método que instancia uma interface responsável pelo gerenciamento de transações das entidades.

EntityTransaction transaction = entityManager.getTransaction();

E tal como aconteceu como os demais métodos, para abrir o escopo de transação do EntityManager é preciso primeiro, iniciar a transação.

transaction.begin();

Criaremos então uma lista para retornar os dados onde o entityManager invocará o “createQuery” que enviará uma instrução SQL – Standard Query Language direto para o banco de dados. O Entity Manager é uma API configurada para ler e escrever em uma base de dados

O procedimento de enviar uma instrução SQL diretamente para o banco de dados é especialmente útil quando se deseja utilizar recursos específicos do banco de dados. Assim para carregar de forma completa os objetos persistidos utilizaremos a cláusula “FROM”. A interface ResultList() “agrupará” os dados coletados e retornará a lista.

Para encerrar o processo enviamos um “commit”. O commit é o ato de enviar dados ou códigos para serem armazenados, neste caso, gravado em um banco de dados. Após o commit a lista é retornada.

transaction.commit();
return lista;

TESTANDO A APLICAÇÃO

No escopo do método testeConsultar(), depois de instanciar o DaoGeneric, será preciso instanciar uma lista que conterá os dados da entidade UsuarioPessoa.

E como se trata de uma lista será preciso também um “for each” para percorrer a lista de dados e listá-los.

Para “rodar” o teste selecione o nome do método que deseja executar, clique com o botão direito do mouse sobre ele >> Rum As >> JUnit test. Se após a execução do método, nenhum erro for apresentado no console, basta então conferir na base de dados se o registro foi de fato excluído.

EM POUCAS PALAVRAS

E com esta implementação temos uma CRUD (Create-Read-Update-Delete) completo implementado de forma simples, prática e rápida com o Hibernate. Estas implementações poderão ser adaptadas em quaisquer projetos. Agora é a sua vez de praticar.