Galera, quero entrar mais afundo em persistência e gostaria de saber por qual o melhor caminho, JPA ou Hibernate?
Minha aplicação eu estou utilizando Struts com banco de dados PostgreSql, agradeço com quem contribuir nesse tópico
Olá!
Não sou expert não mas tenho utilizado hibernate 3.2 e não tenho tido problemas. Acho que na verdade, as annotations do JPA podem ser utilizadas com Hibernate sem problemas.
JPA é uma especificação do JAVA.
Hibernate é uma das implementações dessa especificação, na verdade a especificação surgiu depois da implementação, pois JPA é uma especificação muito próxima do que o Hibernate já fazia. Agora o Hibernate também pode ser utilizado sem ser uma implementação JPA (se vc usar os xmls para fazer os mapeamentos).
Essa explicação acima é superficial, mas o que eu quero dizer é que para usar JPA vc tem que usar na verdade uma implementação dela que pode ser o Hibernate ou mesmo o TopLink da Oracle.
Mais para usar JPA e obrigado a utilizar Hibernate junto?
Como falei acima o JPA é a especificação (como deve funcionar usando um termo grosseiro) e o Hibernate é a “codificação” vamos dizer assim, logo para você usar JPA tem que ser por intermedio do Hibernate. Mas pode ser outra implementação como a TopLink.
blz, e alguém conhece um tutorial ou exemplo na net que fale sobre o assunto
Qual assunto? JPA ou Hibernate???
http://www.google.com.br/search?q=tutorial+hibernate+e+jpa&btnG=Pesquisar&hl=pt-BR&sa=2
Cara, aconselho a usar JPA que é a especificação. Além disso esse Framework possui algumas vantagens perante o Hibernate, como a possibilidade de se realizar Querys Nativas, aumentando a performance das suas operações.
notei que no netbeans tem umas classes prontas sobre persistencia que seria JPA será que vale a pena usar?
Pelo que eu sei a JPA é uma especificação, me corrijam se eu estiver errado.
Onde você deve usar um framework que a implemente.
Ex: Hibernate ou Toplink.
Como o hibernate vêm por padrão no JBoss, ao usar JPA fica transparente esse uso.
Mas deve ser declarado no persistence.xml qual o provider você irá usar.
Exemplo de persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="bookingDatabase">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/bookingDatasource</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
<property name="hibernate.show_sql" value="true"/>
<!-- These are the default for JBoss EJB3, but not for HEM: -->
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
</properties>
</persistence-unit>
</persistence>
JPA é uma especificação ou framework??? Leia ai o que você escreveu…JPA é uma especificação, logo para você utilizar tem que ser através de uma implementação dela que no caso pode ser o Hibernate, TopLink ou outro que achar.
Se quiser fazer um teste rápido com JPA pode usar o JBoss Seam com Seam-gen que gera um projeto pronto para rodar, utilizando JPA com hibernate.
onde vc achou classe pronta no NetBeans?? o que vc pode é utilizar os wizards do NetBeans para conectar no BD e ele fazer uma engenharia-reversa e transformar suas tabelas em Beans, mas isso só é recomendável se seu modelo for exatamente igual ao seu modelo ER que acredito que não seja.
blz, entendi, valeu galera pela ajuda
Não necessariamente. Você pode usar o JPA com qualquer provider, geralmente os da Hibernate ou TopLink (Oracle).
Bom quanto à sua questão sobre o que vale a pena aprender eu acho que aprender JPA agora é necessário sim, pois é uma tecnologia emergente que eu acho que tem muito futuro.
Porém acho necessário também aprender a usar o Hibernate por sí só, sem os anotations, hoje a maioria das empresas ainda usam hibernate em sistemas que já haviam sido construidos antes do surgimento do jpa e provavelmente vc terá que dar manutenção em um desses.
:thumbup: