Alternativas

Nativas

Realizando consulta nativas com JPA

Introdução

JPA Consultas - Nativas

As consultas nativas no JPA permitem que você escreva SQL puro, interagindo diretamente com as tabelas e colunas do banco de dados. Essa abordagem oferece total controle sobre a consulta, permitindo o uso de recursos específicos do banco, mas pode reduzir a portabilidade do código, já que a consulta é dependente do banco de dados utilizado.

Para que você possa acompanhar este exercício, é necessário que você esteja realizando-os em um projeto Spring Boot com dependencias do Spring Data JPA. Consulte nosso vídeo JPA Setup - com Spring Boot
ClienteConsultaNativa.java
import jakarta.persistence.*;
import org.springframework.stereotype.Service;

@Service
public class ClienteConsultaNativa {
    @PersistenceContext
    private EntityManager entityManager;
}

Casos de Uso

  1. Todos os clientes, sem filtros, ordenados por nome
public List<Cliente> consultarClientesOrdenadosPorNome() {
    // Consulta SQL Nativa para buscar todos os clientes ordenados por nome
    String sql = "SELECT * FROM tab_cliente ORDER BY nome_completo";
    Query query = entityManager.createNativeQuery(sql, Cliente.class);
    return query.getResultList();
}

JPA Consultas - Nativas part02

Note que mesmo que tabela tenha o mesmo da entidade estamos mencionando o nome da tabela e seus campos como se estivessemos direto no SQL através do método createNativeQuery