Há pouco tempo venho usando java e seus frameworks, por isso essa necessidade recorrente da ajuda de vocês.
Tenhu usado JPQL e me ocorreu que esta fere The Law of Demeter quando se escreve:
SELECT o FROM Classe o WHERE o.atributo1.atributo2.atributo3.etc == "teste"
Já no o.ATRIBUTO1 JPQL fura o encapsulamento da classe, aumentando assim o acoplamento das consultas JPQL com a estrutura interna da classe, ou seja, se a estrutura interna da classe for alterada todas as consultas acopladas a esta também terão de ser alteradas! Que mer#%%$!
Existe alguma formar de desacoplar as consultas da estrutura interna da classe?
Tem que funcionar no mínimo em casos como este:
Class Cep {
private String cep;
...
}
Class Endereco {
...
private Cep cep;
...
}
Class Consumidor {
...
private Endereco endereco;
...
}
A consulta seria: Consultar todos os Consumidores que residam em um determinado CEP.
SELECT c FROM Consumidor c WHERE c.endereco.cep == ?
Como seria esta consulta de forma desacoplada?
[]s
Conto com a ajuda de vocês!