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:
@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:
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.