Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] JPQL

Boa tarde

Caso eu precise fazer uma consulta mais especifica utilizando um query nativa, como seria feito nesse caso ?

@GetMapping
public List<Medico> listar() {
    return repository.findAll();
}

tentativa:

@GetMapping
    @Query(" "). ???
public List<Medico> listar() {
    return repository.findAll();
}

nesse caso ele não iria ignorar minhas query nativa ?

4 respostas

Oi!

Você pode escrever uma query nativa, com SQL puro ao invés de JPQL, dessa forma:

@Query(value = "select * from medicos", nativeQuery = true)

Obs: A anotação @Query deve ser adicionada no método da interface repository e não no método da classe controller

Nesse caso eu crio um método na minha classe repository e passo a query dentro dele ?

na classe controller ficaria : return repository.findBuscarMedicoEspecialidade(); ??

solução!

A anotação fica em cima do método no repository. Exemplo:

public interface MedicoRepositry extends JpaRepository<Medico, Long> {

    @Query(value = "select * from medicos where nome like :nome order by id desc", nativeQuery = true)
    List<Medico> buscarPorNome(String nome);

}

E no controller basta chamar normalmente esse método do repository.

Obrigado!