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

Dúvida no Ex. 11 da Aula 7 - Melhorando e organizando as queries

Olá,

Surgiu uma dúvida quanto a forma que utilizamos o JPQL durante o curso. Pelo que compreendi uma das vantagens de se utilizar o JPA é nos desacoplarmos de um banco de dados específico, evitando escrever SQL no código Java (ganhando em manutenibilidade e flexibilidade). Mas com o JPQL ainda temos muita informação armazenada em Strings, e se por acaso mudarmos o nome de uma das Entities por exemplo, teremos de “caçar” todos os lugares que a utilizam e alterar manualmente. Mesmo o padrão DAO e as NamedQueries não resolvem isso totalmente, eles apenas centralizam essa informação, o que não nos livra de possíveis esquecimentos.

Existe solução para isso, ou essa é a melhor maneira de se trabalhar com banco em Java?

Desde já agradeço.

2 respostas
solução!

Olá Alesson, realmente o nome das entidades que ficam nas queries que se encontrar nos DAO's e afins devem ser mudados caso haja um refactor do nome da entidade dentro do seu projeto, caso mude apenas no lado do banco, basta mapear sua entidade para a nova tabela a qual ela se refere, isso diminui muito o acoplamento, porém, como você mesmo disse não é 100% para esses casos.

Você pode usar a JPA para criar queries type-safe através do static metamodel, se assim desejar, evitando esse problema.

Opa Pedro,

pesquisei a respeito do static metamodel e ele resolve os problemas que citei, obrigado pela sugestão.