JPA: Hibernate ou Toplink essentials?

Olá,
Quais vantagens de se usar o Hibernate para implementar JPA?

Sávio Barros

Bom… talvez eu não tenha o conhecimento necessário para responder este tópico à altura, mas, de qualquer forma, vou deixar aqui minha opinião…

Se você usar o Hibernate ou o TopLink, você vai estar seguindo os padrões definidos pelo JPA. Suas classes, seus métodos, enfim, não vai mudar muita coisa entre um e outro. O que vai mudar é (como diria meu professor de Java na GlobalCode) que você vai estar usando por debaixo dos panos um desses frameworks de persistência…

Logo, a única coisa que vai mudar é o modo como você vai tratar as operações com código SQL (em geral, ou sempre, somente os selects), afinal de contas, o modo como você obtêm a sessão, abre uma transação, dá um commit, um rollback, declara seus managed beans, etc é de acordo com a especificação do JPA. O que será usado por debaixo dos panos, não ficará transparente pra você pois a API vai fazer esse trabalho árduo.

Como não tenho experiência suficiente para afirmar se um ou outro é melhor (pois não conheço detalhes que possam me dar base para falar de diferença de performance), posso dizer que independente do framework que você use, o importante é que o JPA está aí para facilitar a nossa vida e nos dar a liberdade de escolher com qual trabalhar… ou até com os dois (se é que isso é possível)

É, eu uso o TL, e fiz uns testes usando o HB tb. Uso JPA e conheço as vantagens, e sei que as operações são as mesmas usando um ou outro. Porém o que noto é que há uma preferência pelo uso do HB, mesmo precisando baixar 3 jars (grandes, se comparados com o toplinkessencials.jar).
Deve haver alguma vantagem em usar HB, e é essa eventual vantagem que eu gostaria de conhecer…

Sávio Barros

Será que é por que a JPA nasceu baseada no Hibernate?

Isso que o Antonio disse é verdade…

A especificação JPA foi feita baseada no Hibernate… tanto que, quem usa Hibernate, se adapta facilmente ao JPA até pelo nome das classes e métodos…

Acredito que ganhe uma diferença de performance favorável ao Hibernate… mas não deve ser muita não…

Mas o que liga mesmo é que o Hibernate é o mais utilizado e, com certeza, deve haver um ótimo motivo para isso

Então, esse “ótimo motivo” que eu gostaria de saber… eu gostei mais do toplink essentials… achei as dependencias do HB meio pesadas… achei 3 jars muita coisa…

Eu estava lendo a especificação aqui… onde posso confirmar que JPA é baseado em HB?

Mas se JPA foi baseado no Hibernate, por que a Sun usa o TL como RI?

hehehe boa pergunta… Porém o TL tem algumas incompatibilidaes com JPA, principalmente quanto à tipos enumerados, o que não acontece no Hibernate. Já ouvi falar em TL ter melhor desempenho em ambientes Oracle, porém nunca realizei um benchmark detalhado a respeito, e, mesmo trabalhando exclusivamente em ambiente Oracle, não tenho como lhe afirmar com certeza…