Archive

Posts Tagged ‘Hibernate’

JPA: Toplink Essentials vs Hibernate

August 14th, 2008 No comments

É práctica estabelecida criar uma solução de software dividindo em diversas camadas: uma para interacção com bases de dados outra que suporte o modelo de negócio e outra com o interface para o utilizador. É claro que o número de camadas pode variar de 1 para ‘n’. Cada camada está isolada das restante, fornecendo um desenho modular, com interfaces entre elas claramente definidas.

A interacção com bases de dados obriga a lançar montes de SQLs contra a base de dados para qualquer actividade. Estas instruções SQL  devem ser modificadas manualmente, e há sempre oportunidades para erro quando se modificam as entidades na base de dados ou as classes no código ou as próprias instruções SQL (nem vale a pena falar já nos diferentes dialectos SQL para cada vendedor).

Por isso, são sempre bem-vindas as ferramentas que automatizam estas interações, eliminando pontos de falha. Para evitar introduzir mais instabilidades, essas ferramentas deveriam ser o mais sólidas e consensuadas possíveis.

Java oferece JPA, Java Persistence API, que, atravês de certas classes e anotações permitem abstrair o programador  das tarefas mais repetitivas. Ainda, Netbeans 6.1 permite criar classes automaticamente a partir das tabelas nas bases de dados. Apesar de ser útil para qualquer aplicação, JPA parece entrincherado no J2EE (bem podia estar no J2SE), e só falam nesta especificação em conjunto com EJB (Enterprise Java Beans).

Esta persistência pode ser fornecida por qualquer vendedor. Actualmente estão Toplink Essentials, Hibernate e JDO.

JDO não parece a opção mais habitual, por isso vou deixâ-lo de lado.

Toplink Essential é uma livraria opensource da Oracle. A empresa tomou conta de este produto atravês de certas aquisições. Inicialmente havia um custo nas licenças para uso comercial, mas a determinada altura resolveram oferecer esta versão aberta. É a que Netbeans e GlassFish (e portanto SUN Application Server 9.1) incorporam “de série”.

Hibernate é uma livraria alternativa e opensource. Há muitos livros sobre ela, mas é preciso fazer downloads separados para a usar em Netbeans e GlassFish.

Isto deixa-me num dilema: com quê versão trabalhar? Hibernate tem muita documentação, mas não vem de série, ou Toplink, que tem pouca documentação.

Acho que vou começar com http://java.sun.com/developer/technicalArticles/J2EE/jpa/.

Queria experimentar com cada tecnologia de forma individual, mas está a ser difícil.

Deixo aqui alguns dos links que encontrei. Espero que sejam de utilidade a alguém:

*UPDATE 2008-08-15*

Já localizei alguma informação “oficial” sobre o TopLink Essentials: http://www.oracle.com/technology/products/ias/toplink/jpa/index.html e https://glassfish.dev.java.net/javaee5/persistence/.

:-)