Aqui está um exemplo de como usar a JPQL no Spring JPA para buscar um elemento na base de dados.

Suponha que temos a entidade Produto:

👨🏼‍💻 Exemplo prático

@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 um produto com um preço superior a um determinado valor. Podemos fazer isso usando o JpaRepository do Spring JPA:

👨🏼‍💻 Exemplo prático

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;

@Repository
public interface ProdutoRepository extends JpaRepository<Produto, Long> {
    Optional<Product> findByNome(String nome);
}

Neste exemplo, adicionamos um novo método findByNome() na interface ProdutoRepository. O Spring Data JPA analisará o nome do método e gerará automaticamente a consulta correspondente, sem a necessidade de escrever a consulta JPQL manualmente.

O método findByNome() retornará apenas um registro de produto com o nome especificado. O Spring Data JPA irá executar a consulta e retornar o resultado como um objeto Optional. Que irá nos permitir verificar se existe ou não tal produto.

Você pode ajustar o método findByNome() de acordo com o campo pelo qual deseja fazer a busca. Por exemplo, se você quiser encontrar um produto pelo seu código de barras, poderia criar o método findByCodigoDeBarra(String codigoDeBarra).

Assim, o JpaRepository fornece um mecanismo fácil e conveniente para recuperar registros individuais do banco de dados com base em diferentes critérios de pesquisa.