Questionamento sobre lazyload

2 respostas
A

Pessoal,

Já tem um tempo que desenvolvo em Java mas, assumo sem vergonha, não sou nenhum mastercoder. Estive pensando sobre o hibernate e já comentei com o pessoal que trabalha comigo sobre o fato do framework usar o padrão lazyload e sobre a pratica de usar esse padrão da maneira que é usado.

vejam bem

o Hibernate usa a CGLib para “injetar” código java nas nossas classes pojo, incluindo nelas (creio eu) um observer que será chamado para carrega-las quando for necessário.

(Não sei se é isso mesmo que o hibernate faz, mas a minha dúvida faz sentido tb se fosse nos mesmos que colocassemos um observer nas propriedades a serem carregadas posteriormente)

então eu penso:

Se um pojo é usado apenas para transporte de dados e por assim dizer trafega por todas (ou quase todas) as camadas do sistema é possível que uma propriedade que retorna um pojo qualquer carregue esse objeto na camada de apresentação.

e eu, que sou meio devagar, continuo pensando:

com isso não estariamos fazendo um acesso a dados a partir da camada de apresentação e, dessa maneira, indo contra a velha história de separação de camadas

(sem contar que sempre me falaram que fazer um acesso a dados da camada de apresentação é uma tremenda gambiarra e não deve ser feito de maneira nenhuma)

Desculpe se minha dúvida for muio elementar.
Mas tem alguns aspectos que realmente são nebulosos para mim

Grato

2 Respostas

Ferryman

Eae

É pensando assim, realmente isso pode acontecer… mas se sua camada de view precisa dos dados que serão carrados via lazzy, porque vc não carrega eles antes de enviar pra view, e então desatacha o objeto da sessão do hibernate?!

[]s
Ferry

U

a camada serve para mostrar os dados… então não é gambiarra acessa-la da camada de visão… o que não pode ser colocado é regras de negocios na sua apresentação.

exemplo seus arquivos jsp. não deveriam ter código java assim diminui drasticamente(mais não elimina) as chances de ter logica de negocios em seus jsp.

Criado 23 de agosto de 2007
Ultima resposta 24 de ago. de 2007
Respostas 2
Participantes 3