[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: [reverbel-sma] JPA e Hibernate e Banco de Dados



Olá Helves.

On 9/20/06, Helves Domingues <hhdomingues@xxxxxxxxx> wrote:
Fiquei com as seguintes dúvidas após o primeiro trabalho:

- Qual é a relação do JPA com Hibernate no JBoss ? Acredito que vi alguns
logs no JBoss sobre Hibernate.
A JPA é uma API padrão utilizada para a persistência de entidades. O
Hibernate é um arcabouço de persistência que implementa essa API.
Desse modo, as aplicações interagem com uma API padrão, e a escolha do
arcabouço de persistência utilizado é configurável (pode ser o
Hibernate, por exemplo).

- Sendo JPA uma especificação de uma API, existem várias implementações? (
tais como: implementação
  do JPA para MySql, Oracle, etc...)
Existem várias implementações de JPA, mas elas não estão
necessariamente associadas a banco de dados. Um arcabouço de
persistência (compatível com a JPA) interage com um banco de dados
através de um driver JDBC (através da interface javax.sql.DataSource).
Portanto, um mesmo arcabouço de persistência (Hibernate, por exemplo),
pode funcionar tanto com o MySQL, quanto com o Oracle ou o Sybase.

Outra implementação de JPA que eu já ouvi falar (mas nunca usei) é o
TopLink, da Oracle. Devem existir outras implementações, mas acho que
o Hibernate e o Toplink são as mais famosas.

- Como faço para utilizar, agora que está pronto o código, o MySQL. O que
devo configurar? As tabelas
são criadas automaticamente?
Você precisa configurar um DataSource para o MySQL. Veja o arquivo
$JBOSS_HOME/docs/examples/jca/mysql-ds.xml. Esse arquivo deve ser
alterado de acordo com a sua configuração e então copiado para o
diretório de deploy do JBoss. Um artigo legal que explica como
configurar um DataSource no JBoss:

http://www.onjava.com/pub/a/onjava/2004/02/25/jbossjdbc.html

Depois de configurar o seu DataSource para o MySQL, você precisa
alterar o seu persistence.xml para utilizar o "novo" DataSource:

<jta-data-source>java:/SeuNovoDataSource</jta-data-source>

O nome deve ser o mesmo que você definiu no elemento <jndi-name> do
arquivo "mysql-ds.xml". Para criar as tabelas automaticamente, eu tive
que adicionar a seguinte propriedade ao persistence.xml:

<properties>
 <property name="hibernate.hbm2ddl.auto" value="update" />
 ...
</properties>

Se algo do que eu escrevi não estiver claro ou parecer estranho, por
favor volte a escrever :-).

[]' s


Obrigado,

Helves Domingues




--
Ivan Neto