Aqui está um exemplo de como usar a JPQL no Spring JPA para listar os elementos na base de dados.
Suponha que temos a entidade Produto:
@Entity
public class Produto {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private float preco;
// Construtores, getters e setters
}
E queremos escrever uma consulta JPQL personalizada para buscar todos os
produtos com um preço superior a um determinado valor. Podemos fazer
isso usando o JpaRepository do Spring JPA:
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ProdutoRepository extends JpaRepository<Produto, Long> {
List<Produto> findByPrecoGreaterThan(float preco);
}
Nesse exemplo, criamos uma interface ProdutoRepository que estende JpaRepository<Produto, Long>. Isso permite que aproveitemos as consultas automáticas fornecidas pela JpaRepository e também adicionemos nossas próprias consultas personalizadas.
A consulta personalizada findByPrecoGreaterThan() é definida no ProdutoRepository. O Spring Data JPA analisa o nome do método e cria automaticamente a consulta correspondente, sem a necessidade de escrever a consulta JPQL explicitamente. O método findByPrecoGreaterThan() retornará todos os produtos com preço maior que o valor especificado.
Através da herança da interface JpaRepository, você terá acesso a outros métodos úteis, como save(), findAll(), findById(), deleteById(), entre outros, que são fornecidos pela JpaRepository de forma automática.
Dessa forma, você pode simplificar a escrita de consultas personalizadas e aproveitar a funcionalidade de CRUD (criar, ler, atualizar e excluir) fornecida pelo JpaRepository do Spring Data JPA.