1
resposta

Api de Critéria do JPA é Sofrência

essa critéria do JPA é horrível, a citéria do hibernate era bem mais bacana mas foi depreciada, o projeto Apache Delta Spike tem uma funcionalidade de Criteria que é super legível e bem que o pessoal da especificação poderia tornar a critéria do Delta Spike como especificação. Um recurso bem bacana são as Specifications que não sei se é do JPA mesmo ou se é coisa do SpringData mas me parece que tem o mesmo comportamento da JPA de carregar a entidade interira, e não dá pra selecionar apenas algun campos, se não me engano. Temos também os EntityGraphs mas parece que esse último não caiu muito na graça do povo

1 resposta

Olá Ricardo,

Entendo sua frustração com a API de Critéria do JPA. Realmente, pode ser um pouco complicado de utilizar e entender. No entanto, é importante lembrar que o JPA é uma especificação e, portanto, cada implementação pode ter suas particularidades.

Sobre as Specifications, elas são uma funcionalidade do Spring Data, que é uma camada de abstração em cima do JPA. Com ela, é possível criar consultas mais complexas de forma mais legível e fácil de manter. É possível selecionar apenas alguns campos utilizando a projeção, por exemplo.

Já os EntityGraphs são uma funcionalidade do próprio JPA e permitem definir quais associações devem ser carregadas junto com a entidade principal, evitando assim o problema de carregar a entidade inteira desnecessariamente.

Espero ter ajudado e bons estudos!