Archive

Archive for October 20th, 2008

Hibernate – Dicas para desenvolvedores

October 20th, 2008

Muitos desenvolvedores que utilizam Hibernate como camada de persistência já se depararam com problemas de Lazy Load, principalmente em aplicações WEB. Isso acontece quando esquecemos de ler a documentação do produto referente a utilização nesse ambiente. O resultado disso são sucessíveis erros referente a sessões duplicadas na aplicação.

Deixamos isso de lado, pois esse problema será discutido em outro post. Vamos nos concentrar no que é esse tal de Lazy Load.

  • Lazy Load

Lazy Load(Carga Preguiçosa) nada mais é um padrão de projetos utilizado na maioria dos frameworks de persistência, com implementações específicas para cada arquitetura. A justificativa da sua utilização é de minimizar a carga dos objetos que possuem relacionamento com o objeto solicitado, carregando a lista de coleções apenas quando acessado.

O hibernate habilita o recurso Lazy Load por padrão para evitar que os objeto relacionados sejam carregados por parão. Porém, em alguns casos a utilização desse recurso deve ser controlada. Principalmente no caso que as tabelas referenciadas pelos objetos persistes estão repletas de informações. Nesse caso, deve ser utilizado um recursos como HQL/SQL, consultas embutidas ou tá mesmo configurações que limitam a carga total das tabelas.

A mágica contida na implementação do padrão está no trabalho com conjunto com outros padrões de projetos aplicando técnicas de desenvolvimento. Padrões de projetos como o proxy que tem a finalidade de prover um wraper que instancia e inicia os objetos solicitados. Técnicas com a instrumentação de código que encapsulam funcionalidades extras nas classes persistentes. Para que isso aconteça, o mapeamento, em conjunto com as configurações, devem ser bem feitas para tornar toda a aplicação funcional.

  • Desenvolvimento de aplicações WEB com Hibernate

Desenvolver aplicações WEB que utilizam hibernate é uma tarefa desafiadora para desenvolvedores de primeira viagem, principalmente quando o projeto tem diversos relacionamentos e requer constante acesso a bases de dados. Participei de alguns projetos que esses problemas vieram a tona e foram resolvidos. Nos próximos posts publicarei algumas técnicas que foram utilizadas para resolver os problemas de Lazy Load, transações, múltiplas sessões e open session in view.

Frameworks