1
resposta

Qual a diferença do Native Query x JPQL ? Qual a mais performática?

Pelo que entendi,

Derived Queries -> Consulta criadas através do código Java.

JPQL -> Query criada através de uma estrutura SQL mas com os nomes da Entidade do Java.

Native Query -> Consulta SQL.

Qual a mais performática ?

1 resposta

Na maioria dos casos a mais performática é a query nativa.

Native Query - podem fazer uso de recursos específicos do banco de dados, não passam por nenhuma conversão para serem geradas. As desvantagens são: está diretamente ligada a um banco especifico (é necessário refaze-la em caso de uma mudança de banco) e fugir bastante do paradigma orientado a objetos;

JPQL - é uma das tentativas mais aceitas de acesso a banco usando orientação a objetos (não é perfeita), e o código gerado em jpql roda em diversos bancos sem alteração. Desvantagem: por ter uma camada de abstração, em algum momento o código jpql tem que ser transformado e código nativo, isso gera uma performance menor;

Derived Queries - é um recurso sensacional que veio com o spring data, mas também passa pela fase de transformação em query nativa.